Herkese merhaba. Bu yazıyla Flutter projeleri geliştirirken kullanabileceğimiz, faydalı olacağını düşündüğüm “Haftanın Flutter Paketi” serisine başladığımı duyurmak isterim. İlk haftanın paketi, kendi geliştirdiğim projemde çok yakın zamanda kullandığım url_launcher.
url_launcher Nedir?
Uygulamanızdan kullanıcılarınızı harici bir URL’ye, bir web sayfasına, e-posta göndermeye ve hatta bir telefon numarasına yönlendirmek istiyorsanız, ihtiyacınız olan paket bu.
- Örneğin bir butona basıldığında kullanıcının varsayılan tarayıcıya yönlendirilerek belirli bir URL’yi açabilmesini sağlamak.
- Bir telefon numarasının telefonun standart arama uygulamasına kopyalanıp görüntülenmesini sağlamak.
- Bir butona basıldığında alıcısını ve metnini oluşturacak şekilde email hazırlamak ve göndermek.
Kurulum
Terminale aşağıdaki satırı yazarak kurulum başlatabilirsiniz:
flutter pub add url_launcher
pubspec.yaml dosyasına aşağıdaki gibi eklenecektir:
dependencies:
url_launcher: ^6.1.7 //Versiyon numarası değişiklik gösterebilir
Kullanım
1- Web Url’lerini Açma
Bir web URL’sini açmak için launch
fonksiyonunu kullanabilirsiniz:
import 'package:url_launcher/url_launcher.dart';
void launchURL() async {
const url = 'https://flutter.dev';
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'Could not launch $url';
}
}
Not: canLaunch(url)
verilen URL'nin açılıp açılamayacağını kontrol ederken launch(url)
URL’yi tarayıcıda açar. launch(url)
metodunu yazmadan url’yi kod içerisine direkt olarak da yazabilirsiniz ancak kullanıcının cihazı ile ilgili olası bir url açamama durumu olması halinde uygulamada sorun yaşanabilir. Bu sebeple metot içerisinde canLaunch(url)
fonksiyonunu kullanmak özellikle önerilir.
2- Telefon Araması Yapma
void makePhoneCall() async {
const phoneNumber = 'tel:+1234567890';
if (await canLaunch(phoneNumber)) {
await launch(phoneNumber);
} else {
throw 'Could not launch $phoneNumber';
}
}
Not: tel:
prefix’i ile bir telefon numarası belirtilerek telefon araması yapılır.
3- SMS Gönderme
void sendSMS() async {
const sms = 'sms:+1234567890';
if (await canLaunch(sms)) {
await launch(sms);
} else {
throw 'Could not launch $sms';
}
}
Not: sms:
prefix’i kullanarak belirli bir numaraya SMS gönderme işlemi başlatılabilir.
4- E-posta Gönderme
void sendEmail() async {
final Uri emailLaunchUri = Uri(
scheme: 'mailto',
path: 'example@example.com',
query: 'subject=Example Subject&body=This is a test email',
);
if (await canLaunch(emailLaunchUri.toString())) {
await launch(emailLaunchUri.toString());
} else {
throw 'Could not launch $emailLaunchUri';
}
}
Not: mailto:
şeması kullanılarak bir e-posta gönderimi yapılır. query
kısmında konu ve gövde içeriği belirlenebilir.
Uygulama İzinleri
iOS
ios/Runner/Info.plist
dosyasına şu satırı ekleyerek internet erişimine izin vermelisiniz:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Android
android/app/src/main/AndroidManifest.xml
dosyasında internet erişimi izni sağlamalısınız:
<uses-permission android:name="android.permission.INTERNET"/>
Umarım paketi detaylıca sunabilmişimdir, faydalı olmasını diliyorum. Önümüzdeki haftalarda başka paketlerde görüşmek üzere.
Kolay gelsin.
Selin.
Hiç yorum yok:
Yorum Gönder