簡體   English   中英

如果您在事先同意后禁用通知,Apple如何處理推送令牌?

[英]How does Apple handle push tokens if you disable notifications after agreeing to them prior?

我正在與Leanplum合作,無法找到有關蘋果推送令牌的文檔。 主要問題是,用戶最初是在安裝該應用程序時生成通知,還是在生成推送令牌后又在以后禁用通知,那么手機本身是否會限制通知,還是在蘋果推送服務器上完成通知? 主要只是試圖了解流程。

根據我的閱讀,推送令牌是相同的,除非用戶重置手機。 因此,如果leanplum為用戶提供了推送令牌,並且我們嘗試在用戶離開后發送推送通知並禁用了通知,那么實際上會發生什么? leanplum會刪除令牌還是該令牌無效? 我知道這很模糊,我只是想了解更多有關蘋果推送過程中幕后情況的信息。 謝謝你的幫助!

摘要

用戶權限對遠程推送通知沒有影響,因此APNs注冊(即令牌檢索)不受影響。 因此,您的服務器端推送通知邏輯不需要感覺到用戶拒絕您的應用程序權限來呈現面向用戶的推送通知的影響。 即使用戶不同意您看到遠程推送通知,您也將繼續收到。 不同之處在於,由於缺少權限,您的推送通知被視為后台遠程通知。 繼續閱讀以獲取進一步的解釋。


遠程推送通知與用戶通知

APNs是一項能夠將有效負載遠程發送到特定設備的服務,這由注冊遠程通知時提供的特定於應用程序設備的令牌標識。 用戶看到的推送通知不一定與普通的遠程推送通知相同。 遠程通知不需要用戶明確授予的權限。 但是,如果要將推送通知顯示給用戶,則只有這樣才需要權限。


用戶權限和服務器端的推送通知

要更直接地回答您的問題:在應用程序啟動時,您應該注冊以獲取遠程通知。 該調用將從APN中獲取應用程序設備令牌,然后將其返回給您。 如果由於某種原因阻止注冊成功,則調用另一個委托方法。 注冊了遠程通知后,只有在那時,您才應該請求用戶權限才能向他們顯示通知。 用戶權限僅用於顯示通知,因此APN仍將按預期工作,而無需在服務器端進行任何更改。 唯一的區別是設備如何顯示信息。

- (void)applicationDidFinishLaunching:(UIApplication *)app {
    // Configure the user interactions first.
    [self configureUserInteractions];

    // Register for remote notifications.
    [[UIApplication sharedApplication] registerForRemoteNotifications];
}

// Handle remote notification registration.
- (void)application:(UIApplication *)app
        didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken {
    // Forward the token to your provider, using a custom method.
    // Setup user notifications.
    [self enableRemoteNotificationFeatures];
    [self forwardTokenToServer:devTokenBytes];
}

- (void)application:(UIApplication *)app
        didFailToRegisterForRemoteNotificationsWithError:(NSError *)err {
    // The token is not currently available.
    NSLog(@"Remote notification support is unavailable due to error: %@", err);
    [self disableRemoteNotificationFeatures];
}

參考文獻:

本地和遠程通知編程指南–配置遠程通知支持

從僅使用遠程通知(即后台)和用戶通知的經驗。

Leanplum SDK只需將推送令牌上傳到Leanplum儀表板(服務器)。 Leanplum將使用該令牌與APNS(Apple Push Notification Service)進行對話,而APNS與設備進行對話以顯示推送。 如果令牌過期或無效,Leanplum將刪除該令牌。

用戶的設備一直在與APNS通信。 因此,當用戶禁用手機通知時,它只會忽略Leanplum的推送。 它不會立即刪除推送令牌。 把它和鹽一起吃,但是我很確定令牌確實在某個時候過期了。

我們知道令牌失效的一種情況是用戶卸載應用程序的時間。 這就是Leanplum跟蹤卸載的方式。 這不是完全准確,因為同一用戶可以重新安裝該應用程序並跟蹤其卸載,但這是我們得到的最接近的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM