iOS 13 Scene Delegate Kullanarak URL ile Uygulamayı Tetiklemek

Bazı durumlarda uygulamamızı URL ile açmak ve ona bazı işlemler yaptırmamız gerekir. Bu bir bildirim olabilir, web sayfasından olabilir, Today Extension ile uygulamamızı açmak ve bir işlem yaptırmak olabilir. Bunun için uygulamamızda URL Scheme ayarlamamız gerekir. Bu yazıda sadece iOS 13 ile gelen Scene Delagate fonksiyonuyla nasıl handle etmeye bakacağız.

Neler Değişti?

iOS 13 ile birlikte uygulamayı yönetmemizi sağlayan AppDelegate ile işlerimizi sağlarken Scene Delegate diye bir şey geldi. Esasında bu Scene Delegate uygulamamızda çoklu pencere ve MacOS desteği sunuyorsak diğer ekranları yönetebilmemiz için kullanılıyor. AppDelegate ile bunu gerçekleştiremiyoruz. Şimdi sorunumuza geri dönelim.

URL ile handle etmek için kullanacağımız metot “openURLContexts URLContexts” olacak. Bu metot ile hangi URL ile uygulamamızın tetiklendiğini başarılı şekilde alabiliyoruz ama uygulamamız zaten açıksa ya da background modda ise. Peki uygulamamız hiç açık değil ve URL ile açılıyorsa ?? Bu senaryoda metot tetiklenmiyor. Araştırıp bulduklarım ile bu URLContexts‘lere farklı bir yerden daha ulaşabiliyoruz. “willConnectTo session” metodundan bizim işimiz Session ile değil tabi diğer parametre olan “options connectionOptions” ile bu bize “urlContexts” özelliği ile istediğimiz şeyi veriyor.

Uygulama ilk açıldığında da elde edebiliyorsak ne yapabiliriz aynı kodu gidip oraya da yapıştıralım ? daha iyisi var tabikide fonksiyonu çağıralım.

self.scene(scene, openURLContexts: connectionOptions.urlContexts)

Bu şekilde uygulamamız ilk açıldığında bile URL’i alabiliyoruz.

Bu kısa yazıda karşılaştığım bir sorunu nasıl çözebileceğimi bulduktan sonra paylaşmamın güzel olabileceğini düşünüp yazdım, bana ulaşmak için yorum ya da iletişim sayfasını kullanabilirsiniz. Teşekkür ederim.

Leave a comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

seven + eighteen =