Aracılığıyla paylaş


Öğ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.

    Anında iletme bildiriminin temel sürümünün ekran görüntüsü.

  • Gelişmiş sürüm: Temel sürümde desteklenen özelliklere ek olarak, uyarı başlığında başlığı ve ileti önizlemesini özelleştirebilirsiniz.

    Anında iletme bildiriminin gelişmiş sürümünün ekran görüntüsü.

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

.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.

  1. Apple Geliştirici Portalı'nda oturum açın.

  2. 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ği seçme seçimlerini gösteren ekran görüntüsü.

  3. Uygulama kimliğinizin sayfasında Özellikler Anında İletme Bildirimleri'ni> ve ardından Kaydet'i seçin.

    Uygulama kimliği yapılandırmasını düzenleme seçeneklerini gösteren ekran görüntüsü.

  4. Görüntülenen Uygulama Özelliklerini Değiştir iletişim kutusunda Onayla'yı seçin.

    Uygulama özelliklerini değiştirmek için Onayla düğmesini gösteren ekran görüntüsü.

  5. 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.

    Geliştirme sertifikası veya üretim sertifikası oluşturma seçeneklerini gösteren ekran görüntüsü.

  6. Sertifikalar, Tanımlayıcılar ve Profiller sayfasında Yeni Sertifika Oluştur alanı görüntülenir.

    Sertifika imzalama isteğini karşıya yükleme seçeneğini gösteren ekran görüntüsü.

    Bu alanda, bir sertifika imzalama isteği (CSR) karşıya yüklersiniz:

    1. 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.

      Sertifika yetkilisinden sertifika isteme seçimlerini gösteren ekran görüntüsü.

      Sertifika bilgilerini doldurma örneğini gösteren ekran görüntüsü.

    2. .cer dosyasını Dosya Seç alanına sürükleyin. Ardından sağ üst köşedeki Devam'ı seçin.

      Sertifika dosyası seçme alanının ekran görüntüsü.

  7. İndir'i seçin.

    Sertifika indirme düğmesinin ekran görüntüsü.

  8. Dosyayı yerel olarak .p12 biçiminde kaydedin.

    Sertifika dosyasını kaydetme alanını gösteren ekran görüntüsü.

  9. İ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.

  10. 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.

    Bildirim hub'ına yönelik uygulama ve sertifika ayarlarını gösteren ekran görüntüsü.

Xcode'ı yapılandırma

  1. Xcode'da İmzalama ve Özellikler'e gidin.

  2. + Yetenek'i seçip Anında İletme Bildirimleri'ni seçerek bir özellik ekleyin.

  3. + Yetenek'i seçip Arka Plan Modları'yı seçerek başka bir özellik ekleyin.

  4. Arka Plan Modları'nın altında Uzak bildirimler'i seçin.

    Xcode'da anında iletme bildirimlerinin ve arka plan modlarının eklenmesini gösteren ekran görüntüsü.

  5. 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:

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.

  1. Apple belgelerinde Projenize hizmet uygulaması uzantısı ekleme bölümüne gidin ve adımları izleyin.

  2. 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 bir chatClient.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

  1. Kullanıcı A ve Kullanıcı B ile sohbet yazışması oluşturun.

  2. Örnek uygulamalar için GitHub deposunu indirin.

  3. Kullanıcı A'larını <ACESS_TOKEN> ve <ACS_RESOURCE_ENDPOINT> değerlerini AppSettings.plist'e yerleştirin.

  4. İki Pod hedefi için Bit Kodunu Etkinleştir'i Hayır olarak ayarlayın: AzureCommunicationChat ve Trouter.

  5. 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.

  6. 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:

  1. 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.

  2. Azure işlevinizi yapılandırdıktan sonra:

    1. Belirteç veren URL'sini Azure portalından alın. Sohbet uygulamanız yeni belirteç istemek için bu URL'yi kullanır.

    2. 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:

  1. 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.

  2. 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.

  3. 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ı.

  4. 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.