2

ここで述べたとおり、すべての手順を正確に実行しました:Push notification issue with iOS 10。しかし残念ながら、これらの2つの方法が呼び出されていません。UNUserNotificationCenterDelegateメソッドが呼び出されていないXcode 8 iOS 10

-(void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler 

-(void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void(^)())completionHandler 

と呼ばれる唯一の方法は次のとおりです。アプリが閉じているとき

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler 

はしかし、didReceiveRemoteNotificationは呼び出されません。

私はリターンを呼び出す場合、私はエラーを取得し、ほかに私はXcodeのバージョン8とiOS 10.0.2

AppDelegate.h

#import <UserNotifications/UserNotifications.h> 

@interface AppDelegate : UIResponder <UIApplicationDelegate,UNUserNotificationCenterDelegate> 

AppDelegate.m

#import "AppDelegate.h" 

#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending) 
#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending) 


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    if(SYSTEM_VERSION_LESS_THAN(@"10.0")) 
{ 

    [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]]; 
    [[UIApplication sharedApplication] registerForRemoteNotifications]; 
} 
else 
{ 
    UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter]; 
    center.delegate = self; 
    [center requestAuthorizationWithOptions:(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge) completionHandler:^(BOOL granted, NSError * _Nullable error) 
    { 
     if(!error) 
     { 
      [[UIApplication sharedApplication] registerForRemoteNotifications]; // required to get the app to do anything at all about push notifications 
      NSLog(@"Push registration success."); 
     } 
     else 
     { 
      NSLog(@"Push registration FAILED"); 
      NSLog(@"ERROR: %@ - %@", error.localizedFailureReason, error.localizedDescription); 
      NSLog(@"SUGGESTIONS: %@ - %@", error.localizedRecoveryOptions, error.localizedRecoverySuggestion); 
     } 
    }]; 
} 
return YES; 
} 

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler 
{ 


if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"10.0")) 
{ 
    NSLog(@"iOS version >= 10. Let NotificationCenter handle this one."); 
    // set a member variable to tell the new delegate that this is background 
    return; 
} 
} 

-(void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler{ 

//Called when a notification is delivered to a foreground app. 

NSLog(@"Userinfo %@",notification.request.content.userInfo); 

completionHandler(UNNotificationPresentationOptionAlert); 
} 

-(void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void(^)())completionHandler{ 

//Called to let your app know which action was selected by the user for a given notification. 

NSLog(@"Userinfo %@",response.notification.request.content.userInfo); 

} 

を使用していますdidReceiveRemoteNotification:

警告:アプリケーション代理人は、-applicatio n:didReceiveRemoteNotification:fetchCompletionHandler:補完ハンドラは決して呼び出されませんでした。

20/10/16 15:06:48 SpringBoard(UserNotificationsServer)[55]: Not saving push notification to store 3995-06A9, error=Error Domain=UNErrorDomain Code=1401 "Notification has no user-facing content" UserInfo={NSLocalizedDescription=Notification has no user-facing content} 
+0

あなたはそのコードを表示することができます –

+0

@ Anbu.Karthikは今すぐappdelegateコードがあります!ありがとう –

答えて

1

(OPに代わって投稿溶液):

私はiOSのコンソール(プッシュ通知のより多くのログを取得するためのツール)を参照してください

は、私はこのエラーを見ることができます。

プッシュ通知にapsのアラートキーがないため、ユーザ通知サーバはストアに通知を保存していないため、これらの2つのメソッドは呼び出されませんでした。

+0

^非常に有用な感謝! – woody121

関連する問題