ios 点击通知栏并没有触发didReceiveRemoteNotification

我现在收到后台发送过来的推送消息 程序还在运行 只是在后台 通知栏收到消息 但是点击通知栏中得消息无法触发didReceiveRemoteNotification 因为我要根据用户点击哪个推送消息做具体的操作 这是为什么 求解答啊

阅读 12.1k
4 个回答

程序在后台运行,点击远程通知才会调用didReceiveRemoteNotification这个方法,如果点击通知栏收到的消息进入前台并没有调用改该方法,那么这个通知可能是本地通知,试试didReceiveLocalNotification。

点击通知启动app的时候,是不走那个方法的。

而是会在AppDelegate里的 application:didFinishLaunchingWithOptions:方法中的launchOptions参数里体现。

NSDictionary *dictionary = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

这样取出来的dictionary就是你想要的userInfo了。

我这边测试
IOS10 background mode 中的 remote notification 已勾选
app没启动状态,点击通知启动app的时候
调用- (void)application:(UIApplication )application didReceiveRemoteNotification:(NSDictionary )userInfo方法
但是不调用- (void)application:(UIApplication )application didReceiveRemoteNotification:(NSDictionary )userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler方法

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