Swift Deep Linking - URL Scheme
Deep Linking bu günlerde uygulamalarda çok önemli hale gelmektedir. Başka bir uygulamadan veya web sitesinden uygulamamıza deep link oluşturabiliriz. Kullanıcı telefonunda uygulamamız yüklü ise web'te tıkladığı linke deep link ekleyerek linke tıklama durumunda telefonda uygulamanın açılmasını sağlayabiliriz.
Özel URL Şema ile Deep Linking
URL şema, tanımladığınız bir protokol aracılığıyla diğer uygulamalarla iletişim kurmamıza olanak sağlar. Böyle bir düzeni uygulayan bir uygulamayla iletişim kurmak için uygun biçimlendirilmiş bir URL oluşturmamız ve sistemden açmasını istememiz gerekir.
Normal bir URL "https://" olarak başlar. Fakat biz kendi URL'imizi oluşturacağımız için "ack://" ile başlamasını istiyoruz. Tabi ki bu URL'in benzersiz olması önemlidir.
Kendi özel URL şemasına sahip bir uygulama, kendisine iletilen URL’leri işleyebilmelidir. Tüm URL'ler, uygulamamız açılırken, uygulamamız çalışırken veya arka planda çalışırken app delegate'e iletilir. Gelen URL’leri ele almak için app delegate aşağıdaki yöntemleri kullanması gerekir.
protokol: https (şema adı)
host: atakancengizkurt.com (ana bilgisayar adı)
path: /hakkimda (iç yol)
Normal bir bağlantı ismi bu şekildedir fakat biz deeplink için kendi URL düzenimizi oluşturuyoruz. Sonuç olarak URL düzeni;
Şema ismimizi "ack" olarak belirledim.
Şimdi uygulamamız içinde tanımlamaları yapalım.
info.plist Dosyasının Düzenlenmesi
İlk adım olarak info.plist dosyamızı Source Code olarak açarak (info.plist sağ tıklanıp Open As -> Source Code) aşağıdaki özellikleri taglarıyla birlikte ekleyin.
info.plist içine doğrudan ekleme yapabilirsiniz.
Burada eklediğimiz CFBundleURLName uygulamamızın benzersiz Bundle identifier'ıdır.
AppDelegate.swift Dosyasının Düzenlenmesi
Uygulamamızın özel URL şema tıklamalarını dinleyebilmesi için, AppDelegate.swift dosyanıza aşağıdaki işlevi eklemeniz gerekir. Bu işlev UIApplicationDelegate protokolünün bir parçasıdır.
Deep Linking olması için kullanıcı mobil tarayıcıda aşağıdaki linke tıklamalıdır ya da adres çubuğuna link adresini yazmış olmalıdır.
<a href= "ack://atakancengizkurt.com/hakkimda"> Uygulamaya geçmek için burayı tıklayın </a>
Deep Linking'i Test Etme
Deep link'in çalıştığından emin olmak için linkleri bir web sitesine yerleştirin veya Safari'de adres çubuğuna adresi yazın.
İlk önce uygulamayı Simulator'da ya da cihazda çalıştırın, uygulamamızda sadece ana ekranı göreceksiniz, artık uygulama başlatıldı ve URL'yi kullanmaya hazır.
Ardından, telefonun Home düğmesine veya Simülatör Hardware> Home seçeneğine basın . Sizi uygulamanın dışına çıkaracak. Safari’yi başlatın ve bu URL’yi girin:
Uygulamamızın Yüklü Olup Olmadığını Algılama
document.location = 'ack://atakancengizkurt/hakkimda';
if( confirm( 'Uygulama yüklü değil, şimdi yüklemek ister misiniz?'))
document.location = 'https://itunes.apple.com/app/.....';
<a href="#" onclick="startMyApp()">
Swift Yüksek Mertebeli Fonksiyonlar
Xcode'da isteğe bağlı özelliklerin etkinleştirilmesi
Az Bilinen Xcode İpuçları
Atakan Cengiz KURT. Blogger tarafından desteklenmektedir.