2016-06-28 16 views
0

設定でプッシュ通知を有効にしているかどうかを確認する必要があります。このために私はこのコードを使用:[[UIApplication sharedApplication] currentUserNotificationSettings] .typesの呼び出しは常にUIUserNotificationTypeNoneを返します

if ([[UIApplication sharedApplication] isRegisteredForRemoteNotifications] == NO) { 
     NSLog(@"NO"); 
     // NO 
    } 
    if ([[UIApplication sharedApplication]respondsToSelector:@selector(currentUserNotificationSettings)]){ 
     UIUserNotificationSettings *noticationSettings =  [[UIApplication sharedApplication] currentUserNotificationSettings]; 
     if (!noticationSettings || (noticationSettings.types == UIUserNotificationTypeNone)) { 
      NSLog(@"NO"); 
      // here it does not work, I enabled push notifications 
      // in settings and noticationSettings.types returns UIUserNotificationTypeNone 
      // NO 
     } else { 
      NSLog(@"YES"); 
      // YES 
     } 
    } 

が、問題があることUIUserNotificationTypeNone alwyas noticationSettings.types戻り、設定にか有効にプッシュ通知があるかどうかにかかわらず。

私はプッシュ通知を有効にしましたが、noticationSettings.typesからUIUserNotificationTypeNoneが返されます。問題がどこにあるのか誰にでも教えてください。おかげ

enter image description here

+0

を登録しましたか?プロビジョニングプロファイルでプッシュ通知が有効になっていますか?プッシュ通知を設定で有効にするだけでは、プッシュ通知の受信を開始するだけでは不十分です。 – Sulthan

+0

はい、私は '[[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeNone categories:nil]];を呼び出します。 '[application:didRegisterForRemoteNotificationsWithDeviceToken:']メソッドと呼ばれます。そして、私はプッシュ通知を受け取ることができますが、[[UIApplication sharedApplication] currentUserNotificationSettings] .types'は私に「UIUserNotificationTypeNone」を返します。これは意味をなさないものです。 – user3797599

答えて

1

あなたのスクリーンショットは、あなたがUIUserNotificationTypeBadgeまたはUIUserNotificationTypeSoundまたはUIUserNotificationTypeAlertregisterUserNotificationSettingsを呼び出していませんでしたことを示しています。

は、以下のことを試してみてください。didRegisterUserNotificationSettings:: `あなたが実際に`アプリケーションを呼び出すことにより、プッシュ通知のため

UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeBadge 
                        |UIUserNotificationTypeSound 
                        |UIUserNotificationTypeAlert) categories:nil]; 

UIApplication *application = [UIApplication sharedApplication]; 
[application registerUserNotificationSettings:settings]; 
+0

プッシュ通知が有効かどうかにかかわらず、 '[UIApplication sharedApplication] currentUserNotificationSettings] .types'が常に' UIUserNotificationTypeNone'を返していたため、エラーが発生したのはUIUserNotificationTypeNone'型の通知を登録したからです。登録をすべてのタイプに変更すると、プッシュ通知が設定で無効になっている場合にのみ、 'UIUserNotificationTypeNone'が返されます。これが必要なのです。私を指摘していただきありがとうございます。 – user3797599

関連する問題