Android DeepLink Kullanımı ( Linkten Uygulama Açma )

Merhaba Arkadaşlar,
Bugün dersimizde sizlere DeepLink Kullanımı ( Linkten Uygulama Açma ) işleminden bahsedeceğim. Deep Link nedir ne işe yarar kısaca açıklayalım; örneğin mailinize gelen url e tıklıyorsunuz yada telefonunuzun browserından bir url yazıp giriş yapmaya çalıştığınızda android uygulamanızın açılmasını istiyorsanız deep link kullanmanız gerekecektir. Bir diğer örnek ise; alışveriş uygulamasında kullanıcının aradığı ürün ile ilgili detaylı sayfaya ulaşmak istediğinde deep link kullanmak hem uygulamanın daha kullanışlı ve efektif olmasını sağlayacaktır.

Öncelikle detaylı bilgi için bu linki inceleyebilirsiniz. ( https://developer.android.com/training/app-indexing/deep-linking.html )

Linkten Uygulama Açma

Deep Linki aktif hale getirmek için yapmamız gereken adımlar şunlar ; AndroidManifest.xml dosyamız aşağıdaki gibi olmalıdır. Kodları incelersek eğer;  <intent-filter> tagını kullanarak belirli android:host, android:pathPrefix ve android:scheme tanımladığımı göreceksiniz. <intent-filter> amacı diğer uygulamaların bizim activity imizi başlatmasını sağlamaktır. Bizde belirli bir url linki girdiğimizde veya tıkladığımızda uygulamamızın LinkReceiverActivity sayfasına gidip oradan da duruma göre ilgili activitysi hangisi ise ona yönlenmesini istiyoruz. <activity> tagleri içinde hangi activity tetiklenmesini istiyorsak onun adını yazıyoruz.

Aşağıdaki AndroidManifest.xml sınıfını incelediğimizde data tagleri içinde yer alan host (*mobilhanem) pathPrefix (takim) ve scheme (http veya https ) uzantıları bulunmaktadır. Böylece kullanıcı url ye örneğin https://mobilhanem.com/takim/Galatsaray yazdığında ilgili sayfa kullanıcının karşısına gelecektir. Bu dersimizde üç activity için örneklendirme yaptık. Galatasaray, Besiktas ve Orduspor için ilgili activityler tanımladık. android:host kısmında kullandığımız  ‘*’ anlamı ise uzantısı ne olursa olsun bütün hepsini kapsayıp mobilhanem yönlendirmesini yapabilsin diye *mobilhanem şeklinde yazdık.

AndroidManifest.xml

Yukarıda belirtiğim gibi yönlenmesini istediğimiz activity sınıfımızın kodlarıda aşağıdadır. İstediğimiz yönlendirme başarılı olduğunda aşağıdaki kod satırları çalışacaktır. Uygulamanın kaynak kodlarını indirip çalıştırdığınızda debug yapmanızı öneririm direk olarak intente eriştikten sonra gelen cevabı alıyoruz. Gelen cevabıda ayrıştırıp takim pathPrefixinden sonra gelen değere göre ilgili activitylere yönlendiriyoruz.

LinkReceiverActivity.java

Şimdi gelelim yazdığımız kodları nasıl test edeceğimize terminal de bazı kodları tetiklememiz gerekiyor eğer mac kullanıyorsanız şu işlemleri sırasıyla yapınız:

Eğer windows kullanıyorsanız şu işlemleri sırasıyla yapınız:

Not: Burada önemli olan sdk pathini nereye gösterdiğinizdir eğer sizdeki path yolu ile burada yazdığım yol aynı değilse zaten yönlendirme işlemi başarısız olacaktır. 

Not: Ben GenyMotion kullanarak bu dersi hazırladım siz uygulamanızı gerçek cihazda da deneyebilirsiniz. Ayrıca GenyMotion kullanırken path belirtme ile ilgili bir sorun ile karşılaşırsanız muhtemelen sdk yolunu gösterme ile ilgili olacaktır. Aşağıdaki resimde gördüğünüz gibi GenyMotion->Settings->ADB den Use custom Android SDK tools işaretleyip ilgili sdk pathini alana yazıyoruz. 

GenyMotion kurulumu için bu dersimizi inceleyebilirsiniz.

Bu işlemleride tamamladıktan sonra isterseniz cihazınızın browserindan ilgili url i yazıp denersiniz isterseniz mail adresinizden url e tıklayarak ilgili uygulamayı açtırabilirsiniz. Buradaki kodların nasıl çalıştığını daha iyi kavramak için dersimizdeki video yu izlemeniz ve kaynak kodları indirmeniz faydalı olacaktır. Aşağıdaki ekran görüntüsünde ilgili url yi browsera yazıp açmaya çalıştığımızda gördüğünüz gibi bize işletim sistemi soruyor uygulamayı mı açmak istiyorsunuz yoksa browserdan mı devam edeceksiniz. DeepLink Kullanımı ( Linkten Uygulama Açma ) kullanmak işte bu kadar kolay hangi şekilde yönlendirme yapacağınız size kalmış dediğim gibi dilerseniz direk uygulamayı açtırırsınız dilerseniz uygulama içindeki herhangi bir activityi açtırırsınız.

 

Tüm Android Ders, Proje ve Kaynak Kodlar için tıklayınız.

Mobilhanem.com üzerinden anlattığımız mobil uygulama geliştirme derslerine devam edeceğiz. Konu hakkında sorunuzu yorum alanından sorabilirsiniz. Konu dışı sorularınızı ve tüm yazılımsal sorularınızı sorucevap.mobilhanem.com sitemizden de sorabilirsiniz.

Bir dahaki dersimizde görüşmek dileğiyle..

Alper Beyler

Yüksek Lisans: Çankaya Üniversitesi / Bilgisayar Mühendisliği
Lisans: Çankaya Üniversitesi / Bilgisayar Mühendisliği (4/3.30) (2010-2014)
Lisans : Viyana Teknik Üniversitesi / Bilgisayar Bilimleri (2013)

1 Yorum

  • anlatımınız için teşekkürler. bunun bir farklı versiyonu yani CALL ile veya OUTGOING_CALL ile uygulama açmayı nasıl yapabiliriz. mesela telefon ile 3456# veya başka bişey tuşlandığında uygulama çalıştırma nasıl olabilir? örnek bir uygulama yayınlarsanız sevinirim

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?