iOS推送通知栏点击,测试版可以打开,正式版不能打开

新手上路,请多包涵

iOS应用,在真机上测试
推送消息后可以在通知栏点击进入到相应的页面
上传到appstore后再安装,收到消息后点击就不能进入相应的页面了
系统版本iOS10.3 iOS9.3都是一样

我的跳转代码是这样的:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
    if (application.applicationState == UIApplicationStateActive) {
        [self gotoUrl:userInfo];
    }else if (application.applicationState == UIApplicationStateInactive){
        [self showPushArticle:userInfo];
    }else if (application.applicationState == UIApplicationStateBackground){
        [self showPushArticle:userInfo];
    }
    completionHandler(UIBackgroundFetchResultNewData);
}

[self showPushArticle:userInfo]这个就是跳转的函数

- (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler{
    if([notification.request.trigger isKindOfClass:[UNPushNotificationTrigger class]]) {
    }
    completionHandler(UNNotificationPresentationOptionBadge|UNNotificationPresentationOptionSound|UNNotificationPresentationOptionAlert); // 需要执行这个方法,选择是否提醒用户,有Badge、Sound、Alert三种类型可以设置
}

- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void(^)())completionHandler{
    NSDictionary * userInfo = response.notification.request.content.userInfo;
    if([response.notification.request.trigger isKindOfClass:[UNPushNotificationTrigger class]]) {
        [self showPushArticle:userInfo];
    }
    // Warning: UNUserNotificationCenter delegate received call to -userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler: but the completion handler was never called.
    completionHandler();  // 系统要求执行这个方法
}

按照网上说的也添加了这两个方法,但是检测到并没有经过这两个函数

不知道有没有哪位遇到过同样的问题

阅读 3.1k
1 个回答

在iOS10 之前跳转代码是你写的第一种 didreceive方法 在iOS10之后是后面两种跳转方法,只不过需要遵守代理才能走。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题