2016-04-01 20 views
3

Bir kullanıcı hesabıyla push bildirimleri almak için bir uygulama geliştirmeye çalışıyorum. IOS7,8,9 bir önceki itme bildirimi davranışını alırsınız

(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { 
Kayıt başarıyla tamamlandıktan sonra, deviceToken bir kullanıcı hesabına bağlanır. ' userA kayıt tamamlanır ve uygulamayı kaldırır zaman

bir senaryo uygulaması ideal APN push bildirim almayacak vardır, ancak başka userB aynı iPhone ile iPhone userA alacak, kayıt olmadan yükler itme bildirimi, deviceToken önceki ile aynı olduğu için. Aslında, userBuserB, aynı cihazla userA push bildirimini almamalıdır. Neyse ki, bu sadece IOS7,8 içinde değil iOS9 var

Nasıl bunu çözmek için (iOS9 izni kullanıcıya kadar itme izni devre dışı)? Bu sorunu işleme sayesinde

cevap

3

Tek yoludur:

1) En kısa sürede cihaza kullanıcı girişi uzaktan bildirim için cihazınızda kaydını .Bu şekilde gibi, bu bildirimin bir sonraki seti sağlayacaktır olmaz Uygulama sunucusu cihaza gönderse bile cihaza ulaşın. kaydını nasıl için

Örnek kod (çıkış yöntemine bakın):

https://github.com/AppLozic/Applozic-iOS-SDK/blob/af7b6b1e9ebeb2d7a7679a887e5d3a17b1b6b4ca/sample-with-framework/Applozic/Applozic/Services/ALRegisterUserClientService.m

2) yine uzaktan bildirim için cihazınızı kaydettirme ve uygulama sunucusuna yeni simge gönderir. Ekstra kontrol uygulaması için sunucu aşağıdakileri yapacaktır. Aynı herhangi bir başka kullanıcı ile bağlıysa

i) uygulama sunucusuna gönderilir cihaz belirteci olup olmadığını kontrol edin (o belirteç reset) Usera diyelim.

ii) deposu tertibatı belirteci ve geçerli kullanıcı (ki userB) ile temas etmektedir.

Bu yardımcı olacaktır umarım.

+0

Buna göre, Girişte HERHANGİ varsa önceki kayıtlar geçersiz sayılacaktır! – djay

+0

@Divjyot evet öyle. – Adarsh

+0

@Adarsh ​​tarafından sağlanan 1 ve 2 çözümleri anlıyorum, ancak bir kez daha UserB uygulaması başlatmazsa, cihazToken uygulama sunucusunda güncellenmez. Böylece APN'ler UserA'nın bildirimini UserB'nin cihazına itecektir. UserB uygulamayı başlatmazsa, deviceToken'ı sunucuda nasıl kaldırabilirim? APN'ler, uygulamanın kaldırıldığını/yeniden yüklendiğini bildirmek için sunucuya herhangi bir geri çağrıya cevap veriyor mu? – onebidman

İlgili konular