2014-09-25 44 views
4

我打算到iOS 8,新的遠程通知API時,我發現這個在文檔前,要調用registerUserNotificationSettings:爲什麼推薦與推送通知服務

「建議你打電話此方法之前您安排任何 本地通知或註冊推送通知服務「

我不明白爲什麼這樣說。我的印象中,這兩個方法調用:

registerUserNotificationSettings

registerForRemoteNotifications

現在是獨立的,一個不影響其他。那麼爲什麼建議先打電話給另一個呢?

回答

-1

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

+3

這並沒有解決任何形式或形式的原始問題。 – 2014-12-15 09:33:37

0

您可以在蘋果找到這個文檔:

如果您希望應用程序的遠程通知顯示警報,播放聲音或執行其他面向用戶的操作,則必須調用registerUserNotific ationSettings:方法來請求您要使用的通知類型。如果您不調用該方法,則系統會以靜默方式將所有遠程通知傳送到您的應用程序。

+0

嗯,是的,但看起來像沒有調用registerUserNotificationSettings只是registerForRemoteNotifications沒有效果。 – berec 2017-03-25 19:00:01