我打算到iOS 8,新的遠程通知API時,我發現這個在文檔前,要調用registerUserNotificationSettings:爲什麼推薦與推送通知服務
「建議你打電話此方法之前您安排任何 本地通知或註冊推送通知服務「
我不明白爲什麼這樣說。我的印象中,這兩個方法調用:
registerUserNotificationSettings
和
registerForRemoteNotifications
現在是獨立的,一個不影響其他。那麼爲什麼建議先打電話給另一個呢?
我打算到iOS 8,新的遠程通知API時,我發現這個在文檔前,要調用registerUserNotificationSettings:爲什麼推薦與推送通知服務
「建議你打電話此方法之前您安排任何 本地通知或註冊推送通知服務「
我不明白爲什麼這樣說。我的印象中,這兩個方法調用:
registerUserNotificationSettings
和
registerForRemoteNotifications
現在是獨立的,一個不影響其他。那麼爲什麼建議先打電話給另一個呢?
IOS 8,用於獲取設備令牌並註冊遠程通知,我們需要應用不同的進程。
if (IS_OS_8_OR_LATER) {
//Right, that is the point
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UIRemoteNotificationTypeBadge
|UIRemoteNotificationTypeSound
|UIRemoteNotificationTypeAlert) categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
}else{
// Register for push notifications
[application registerForRemoteNotificationTypes:
UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeAlert |
UIRemoteNotificationTypeSound];
}
///////////同樣,我們需要定義
#ifdef __IPHONE_8_0
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
{
//register to receive notifications
[application registerForRemoteNotifications];
}
- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo completionHandler:(void(^)())completionHandler
{
//handle the actions
if ([identifier isEqualToString:@"declineAction"]){
}
else if ([identifier isEqualToString:@"answerAction"]){
}
}
然後我們就可以在iOS設備令牌8
您可以在蘋果找到這個文檔:
如果您希望應用程序的遠程通知顯示警報,播放聲音或執行其他面向用戶的操作,則必須調用registerUserNotific ationSettings:方法來請求您要使用的通知類型。如果您不調用該方法,則系統會以靜默方式將所有遠程通知傳送到您的應用程序。
嗯,是的,但看起來像沒有調用registerUserNotificationSettings只是registerForRemoteNotifications沒有效果。 – berec 2017-03-25 19:00:01
這並沒有解決任何形式或形式的原始問題。 – 2014-12-15 09:33:37