簡體   English   中英

iOS:如何注冊推送通知?

[英]iOS: how to register for push notifications?

我正試圖通過Ray Wenderlich的指南為我的iOS 5應用程序實現推送通知: http ://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12。

我已將以下內容插入到didFinishLaunchingWithOptions方法中:

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
    (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];

在我的設備(而不是模擬器)上運行應用程序時,不顯示告訴我接受推送通知的彈出/警報。 我在線上插入了一個調試點,我可以看到,調用了registerForRemoteNotificationTypes

為什么沒有發生?

也許,刪除您的應用並重試。 該對話框只出現一次。 但我不確定重新安裝該應用程序時是否會再次出現該對話框。

您還可以轉到通知中心的設置應用,查看您的應用是否在列表中。

您還可以添加斷點,並查看didRegisterForRemoteNotificationsWithDeviceToken是否執行。

我有這個確切的問題(同樣的教程不少),並發現我使用錯誤的配置文件簽署代碼。

具體來說,我只為我的應用程序啟用了“生產”推送通知(因為我不想兩次制作證書等),但我在Xcode中的Build Settings使用“iPhone Development”作為“Release”的默認“Code Signing Identity”,本來應該是“iPhone發行版”。 這似乎是我的測試應用程序中的默認設置。

希望我能阻止別人在同樣的問題上浪費時間。

從iOS 8開始,有了新的方法。 直接來自UIApplication.h

- (void)registerForRemoteNotifications NS_AVAILABLE_IOS(8_0);

調用此方法將導致application:didRegisterForRemoteNotificationsWithDeviceToken:application:didFailToRegisterForRemoteNotificationsWithError:在應用程序委托上調用。

注意:僅當應用程序已使用registerUserNotificationSettings:成功注冊用戶通知時,或者如果已為后台應用程序刷新啟用,則將進行這些回調。

暫無
暫無

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

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