Öğretici: iOS uygulamanızda anında iletme bildirimleri oluşturma
Bu öğretici, Azure İletişim Hizmetleri Sohbet SDK'sını kullanarak iOS uygulamanızda anında iletme bildirimleri oluşturmanız için size yol gösterir.
Anında iletme bildirimleri, mobil uygulama ön planda çalışmadığında kullanıcıları sohbet yazışmasında gelen iletiler konusunda uyarır. Azure İletişim Hizmetleri anında iletme bildirimlerinin iki sürümünü destekler:
Temel sürüm: Uygulamanın simgesinde bir rozet numarası görünür, cihaz bir bildirim sesi çalar ve bir açılır uyarı başlığı görüntülenir.
Gelişmiş sürüm: Temel sürümde desteklenen özelliklere ek olarak, uyarı başlığında başlığı ve ileti önizlemesini özelleştirebilirsiniz.
Bu öğreticide şunları yaptınız:
- Apple Anında İletme Bildirimi hizmeti (APNs) sertifikası ayarlayın.
- Anında iletme bildirimleri için Xcode'ı yapılandırın.
- Anında iletme bildirimlerinin temel veya gelişmiş bir sürümünü uygulayın.
- Bildirimleri uygulamanızda test edin.
- Anında iletme bildirimleri için otomatik kayıt yenilemeyi ayarlayın.
Kodu indirin
GitHub'da bu öğreticinin örnek koduna erişin.
Önkoşullar
Hızlı Başlangıç: Uygulamanıza Sohbet Ekleme bölümünde tüm önkoşul adımlarını tamamlayın.
İletişim Hizmetleri kaynağınızla aynı abonelik içinde bir Azure bildirim hub'ı oluşturun ve ardından bildirim hub'ını İletişim Hizmetleri kaynağınıza bağlayın. Bkz. Bildirim hub'ı sağlama.
.p12 APNs sertifikası oluşturma ve bunu bildirim hub'ında ayarlama
Microsoft'un dahili müşterisi değilseniz aşağıdaki yordamdaki tüm adımları uygulayın.
Microsoft iç müşterisiyseniz bir bilet gönderin ve .p12 sertifikası almak için uygulamanızın paket kimliğini belirtin. Ardından aşağıdaki yordamdaki son adıma geçin.
Sertifikalar, Tanımlayıcılar ve Profil Tanımlayıcıları>Uygulama Kimlikleri'ne> gidin ve uygulamanızla ilişkili uygulama kimliğini seçin.
Uygulama kimliğinizin sayfasında Özellikler Anında İletme Bildirimleri'ni> ve ardından Kaydet'i seçin.
Görüntülenen Uygulama Özelliklerini Değiştir iletişim kutusunda Onayla'yı seçin.
Uygulama kimliğinizin sayfasında Özellikler>Anında İletme Bildirimleri>Yapılandır'ı seçin ve aşağıdaki seçimi yapın:
- iOS uygulaması geliştirirken anında iletme bildirimlerini test etme için, Geliştirme SSL Sertifikası altındaki Sertifika Oluştur düğmesini seçin.
- Üretimde anında iletme bildirimleri göndermek için Üretim SSL Sertifikası altındaki Sertifika Oluştur düğmesini seçin.
Sertifikalar, Tanımlayıcılar ve Profiller sayfasında Yeni Sertifika Oluştur alanı görüntülenir.
Bu alanda, bir sertifika imzalama isteği (CSR) karşıya yüklersiniz:
Yeni bir tarayıcı sekmesinde bu Apple yardım sayfasını izleyerek CSR oluşturun ve dosyayı Uygulama name.cer olarak kaydedin. Yönergeler, sertifika istemek ve sertifika bilgilerini doldurmak için Sertifika Yardımcısı'nı kullanmayı içerir.
.cer dosyasını Dosya Seç alanına sürükleyin. Ardından sağ üst köşedeki Devam'ı seçin.
İndir'i seçin.
Dosyayı yerel olarak .p12 biçiminde kaydedin.
İndirdiğiniz .cer dosyasını açın. Anahtarlık Erişimi'nde sertifikanızı seçin, sağ tıklayın ve sertifikanızı .p12 biçiminde dışarı aktarın.
Bildirim hub'ınıza gidin. Ayarlar'ın altında Apple (APNS) öğesini seçin. Ardından sertifika ayrıntılarını doldurun:
- Kimlik Doğrulama Modu için Sertifika'yı seçin.
- Sertifikayı Karşıya Yükle için, yeni oluşturduğunuz .p12 dosyasını karşıya yükleyin.
- Uygulama Modu için, ihtiyacınıza göre modu seçin.
Tüm bilgileri girmeyi bitirdiğinizde Kaydet'i seçin.
Xcode'ı yapılandırma
Xcode'da İmzalama ve Özellikler'e gidin.
+ Yetenek'i seçip Anında İletme Bildirimleri'ni seçerek bir özellik ekleyin.
+ Yetenek'i seçip Arka Plan Modları'yı seçerek başka bir özellik ekleyin.
Arka Plan Modları'nın altında Uzak bildirimler'i seçin.
Pod Hedefi - AzureCore için Yalnızca Uygulama Uzantısı Güvenli API gerektir seçeneğini Hayır olarak ayarlayın.
Anında iletme bildirimleri uygulama
Temel sürüm
Anında iletme bildirimlerinin temel bir sürümünü uygulamak istiyorsanız, APN'lerle uzaktan bildirimlere kaydolmanız gerekir. AppDelegate.swift dosyasında ilgili uygulamayı görmek için örnek koda bakın.
Gelişmiş sürüm
Anında iletme bildirimlerinin gelişmiş bir sürümünü uygulamak istiyorsanız, uygulamanıza aşağıdaki öğeleri eklemeniz gerekir. Bunun nedeni, anında iletme bildirimi yüklerindeki müşteri içeriğinin (örneğin, sohbet iletisi içeriği ve gönderen görünen adı) şifrelenmesinin bazı geçici çözümler gerektirmesidir.
Şifreleme anahtarları için veri depolama
iOS cihazlarında kalıcı veri depolama alanı oluşturma. Bu veri depolama alanı, ana uygulama ve uygulama uzantıları arasında veri paylaşabilmelidir.
Bu öğreticinin örnek kodunda, şu eylemleri gerçekleştirerek veri depolama alanı olarak Uygulama Grupları'nı seçin:
Uygulamanıza özellik ekleme başlıklı Apple makalesindeki adımları izleyerek Uygulama Grupları özelliğini uygulamanızın hedeflerine (ana uygulama ve uygulama uzantıları) ekleyin.
Uygulama Gruplarını Yapılandırma Apple makalesindeki adımları izleyerek Uygulama Gruplarını yapılandırın. Ana uygulamanızın ve uygulama uzantılarınızın aynı kapsayıcı adına sahip olduğundan emin olun.
Bildirim Hizmeti Uzantısı
Ana uygulamayla birlikte gelen Bildirim Hizmeti Uzantısı'nı uygulayın. Bu uygulama uzantısı, cihaz aldığında anında iletme bildirimi yükünün şifresini çözmek için kullanılır.
Apple belgelerinde Projenize hizmet uygulaması uzantısı ekleme bölümüne gidin ve adımları izleyin.
Apple belgelerinde Uzantınızın işleyici yöntemlerini uygulama bölümüne gidin. Apple, verilerin şifresini çözmek için varsayılan kodu sağlar ve bu öğreticinin genel yapısını izleyebilirsiniz. Ancak, şifre çözme için Sohbet SDK'sını kullandığınızdan, başlangıç
// Try to decode the encrypted message data
bölümünü özelleştirilmiş mantıkla değiştirmeniz gerekir. NotificationService.swift dosyasında ilgili uygulamayı görmek için örnek koda bakın.
PushNotificationKeyStorage protokolünün uygulanması
Protokol PushNotificationKeyStorage
, anında iletme bildirimlerinin gelişmiş sürümü için gereklidir. Sohbet SDK'sının sağladığı varsayılan AppGroupPushNotificationKeyStorage
sınıfı kullanabilirsiniz. Uygulama Gruplarını anahtar depolama alanı olarak kullanmıyorsanız veya anahtar depolama yöntemlerini özelleştirmek istiyorsanız protokole PushNotificationKeyStorage
uygun kendi sınıfınızı oluşturun.
PushNotificationKeyStorage
iki yöntemi tanımlar:
onPersistKey(encryptionKey:expiryTime)
: Bu yöntem, şifreleme anahtarını kullanıcının iOS cihazının depolama alanında kalıcı hale getirmek için kullanılır. Sohbet SDK'sı, şifreleme anahtarı için süre sonu olarak 45 dakika ayarlar. Anında iletme bildirimlerinin 45 dakikadan uzun süre geçerli olmasını istiyorsanız, eski anahtarın süresi dolmadan önce yeni bir şifreleme anahtarının kaydedilebilmesi için daha sık birchatClient.startPushNotifications(deviceToken:)
arama zamanlamanız gerekir (örneğin, 15 dakikada bir).onRetrieveKeys() -> [String]
: Bu yöntem, daha önce depolanan geçerli anahtarları almak için kullanılır. Daha önce seçtiğiniz veri depolama alanına göre özelleştirme sağlama esnekliğine sahipsiniz.
Protokol uzantısında, Sohbet SDK'sı kullanabileceğiniz yöntemin decryptPayload(notification:) -> PushNotificationEvent
bir uygulamasını sağlar. NotificationService.swift dosyasında ilgili uygulamayı görmek için örnek koda bakın.
Bildirimlerinizi test edin
Kullanıcı A ve Kullanıcı B ile sohbet yazışması oluşturun.
Örnek uygulamalar için GitHub deposunu indirin.
Kullanıcı A'larını
<ACESS_TOKEN>
ve<ACS_RESOURCE_ENDPOINT>
değerlerini AppSettings.plist'e yerleştirin.İki Pod hedefi için Bit Kodunu Etkinleştir'i Hayır olarak ayarlayın: AzureCommunicationChat ve Trouter.
iOS cihazını Mac bilgisayarınıza takın ve programı çalıştırın. Cihazda anında iletme bildirimlerini yetkilendirmeniz istendiğinde İzin Ver'i seçin.
Kullanıcı B olarak bir sohbet iletisi gönderin. Kullanıcı A'nın iOS cihazında bir anında iletme bildirimi aldığını onaylayın.
Kayıt yenilemeyi uygulama
Microsoft'un güvenli bir sohbet hizmeti sağlaması için iOS cihazlarında anında iletme bildirimleri kaydı yalnızca 45 dakika boyunca geçerli kalır. Anında iletme bildirimlerinin işlevselliğini korumak için istemci uygulamasında kayıt yenileme uygulamanız gerekir.
Bu öğretici, Apple'ın resmi yönergeleriyle uyumlu iki çözüm önerir. Etkinliklerini artırmak için her iki çözümü de birlikte uygulamanızı öneririz.
Not
Her iki çözümün de etkinliğini çeşitli faktörler etkileyebilir. Örneğin, cihazın pil durumu, ağ koşulları ve iOS'a özgü kısıtlamaları uygulamanın arka plan görevlerini çalıştırma becerisini etkileyebilir. Daha fazla bilgi için Uygulama Arka Planı Yürütmede İlerlemeler videosuna ve Apple'dan uygulamanıza arka plan güncelleştirmeleri gönderme makalesine bakın.
Çözüm 1: Arka plan görevleri
Arka plan görevleri, uygulama ön planda olmasa bile etkinlikleri gerçekleştirmek için bir yol sunar. Arka plan görevi uyguladığınızda, uygulamanız belirli bir görevi tamamlamak için daha fazla zaman isteyebilir( örneğin, anında iletme bildirimi kaydını yenileme).
Aşağıdaki bölümlerde kayıt yenileme için arka plan görevlerini nasıl kullanabileceğiniz açıklanmaktadır.
Kullanıcı erişim belirteçlerinin otomatik yenilemesini yapılandırma
Sohbet hizmetlerine kesintisiz erişim sağlamak için geçerli kullanıcı erişim belirteçlerini korumanız gerekir. Belirteçler genellikle 24 saatlik bir varsayılan geçerlilik süresine sahiptir ve bu süre sonunda süresi dolar ve yenileme gerektirir. Otomatik yenileme mekanizmasının uygulanması, sohbet uygulaması her etkinleştirildiğinde belirtecin geçerli olduğunu garantiye yardımcı olur.
Sohbet SDK'sı, özel erişim belirteci yenileyicisi uygulandığında yenileme işlemini otomatikleştirerek belirteç yönetimini kolaylaştırır. Sohbet uygulamanızı otomatik belirteç yenilemeyi destekleyecek şekilde yapılandırmak için aşağıdaki adımları tamamlayın:
Sohbet uygulamanızın sürekli ve güvenli kullanıcı erişimini sürdürmesine yardımcı olmak için belirteçleri verene ayrılmış bir hizmet katmanı uygulamanız gerekir. Bu amaçla Azure İşlevleri kullanmak bir seçenektir.
Azure işlevi oluşturmak için Azure İşlevleri kullanarak güvenilen kullanıcı erişim hizmeti oluşturma makalesine bakın. İşlev uygulamanızı ayarlamayı ve belirteçleri vermek için gerekli kodu dağıtmayı açıklar.
Azure işlevinizi yapılandırdıktan sonra:
Belirteç veren URL'sini Azure portalından alın. Sohbet uygulamanız yeni belirteç istemek için bu URL'yi kullanır.
Belirteç yenileyiciyi sohbet uygulamanızda oluşturun ve tümleştirin. Bu bileşen yeni belirteçler istiyor ve sorunsuz otomatik belirteç yenilemesi için sohbet istemcisini başlatır.
Belirteç yenileyici ve sohbet istemcisiyle tümleştirmesi için örnek kod, örnek uygulamalar için GitHub deposunda kullanılabilir.
Arka plan görevlerini etkinleştirme ve zamanlama
iOS uygulamanızda arka plan görevlerini etkinleştirmek ve zamanlamak için, Uygulamanızı güncelleştirmek için arka plan görevlerini kullanma başlıklı Apple makalesindeki adımları izleyin.
Pratik uygulama için örnek uygulamalar için GitHub deposuna başvurun. Sağlanan örnek, bir dakikadan kısa bir süre içinde arka planda verilerin nasıl verimli bir şekilde getirilmeye başlandığını göstermek için yapılandırılan kullanır BGProcessingTask
.
Çözüm 2: Uzaktan bildirim
Uzaktan bildirim, iOS uygulamalarının dış tetikleyicilere yanıt olarak arka plan görevlerini çalıştırma mekanizmasıdır. Kullanıcı müdahalesi olmadan kayıtları yenileme gibi görevler için uzak bildirimleri kullanabilirsiniz.
Arka plan görevi çalıştırmak için uzak bildirimleri kullanmak için:
Tetikleme mekanizması uygulama.
Örneğin, tetikleme mekanizması olarak bir Azure işlev uygulaması kullanabilirsiniz. HTTP istekleri dahil olmak üzere çeşitli tetikleyicilere yanıt olarak kod çalıştırmanızı sağlar, bu nedenle sessiz anında iletme bildirimleri başlatmak için kullanışlıdır. İşlev uygulamasının bildirimleri nereye teslim edeceklerini bilmesi için cihaz kayıt defterini uygulamanızı unutmayın.
Bir bildirim hub'ı ayarlayın.
Azure Notification Hubs hizmeti, herhangi bir arka uçtan (bulut veya şirket içi) herhangi bir platforma (iOS, Android, Windows vb.) bildirim gönderebilen ölçeklenebilir bir anında iletme bildirimi altyapısı sağlar.
Düzenli anında iletme bildirimleri için kullandığınız bildirim hub'ını yeniden kullanabilirsiniz. Yeni bir tane ayarlamak istiyorsanız Azure Notification Hubs belgelerine bakın.
Azure işlev uygulamasını normal bildirimler için yapılandırın.
İşlev uygulamasını, bildirim hub'ı aracılığıyla düzenli aralıklarla uzak bildirimler gönderecek şekilde ayarlayın. Bu bildirimler APN'lere iletilir ve belirtilen cihaza yönlendirilir. Daha fazla yönerge için bkz. Azure İşlevleri için Notification Hubs çıkış bağlaması.
Uygulamanızdaki bildirimleri işleyebilir.
iOS uygulamanızda, sessiz bir bildirim aldıktan sonra kaydın otomatik olarak yenilenmesini tetiklemek için uygulama örneği yöntemini uygulayın.
Daha fazla bilgi için, Uzaktan bildirim sunucusu ayarlama Apple makalesine bakın.
İlgili içerik
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin