ios点击icon进入程序怎么获取推送消息

如题:点击icon进入程序didFinishLaunchingWithOptions方法中launchOptions是nil的,无法得到消息。

但很多app都实现这种,不点通知进入,直接点app启动照样能得到推送信息的。

求大神指导~~

别的论坛里翻了个遍,发现有很多人都有这个疑问,但没人解决,希望在segmentfault知道的人不吝赐教~~

阅读 18k
2 个回答

如果不是点击通知栏进入APP,是拿不到推送消息的。原因是这样的,如果堆积了多条应用,回调将会变得复杂,而且没用。
正确的做法是,服务器要缓存好当前的未读消息,进入应用的时候去获取未读消息。
如果要识别通知栏点击,那获取未读消息之前可能还要进行进一步逻辑处理。

推送消息出现情景和处理办法

1. 当程序处于关闭状态收到推送消息时,点击图标会调用- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions这个方法,那么消息给通过launchOptions这个参数获取到。

2. 当程序处于前台工作时,这时候若收到消息推送,会调用- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo这个方法

3. 当程序处于后台运行时,这时候若收到消息推送,如果点击消息或者点击消息图标时,也会调用- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary *)userInfo这个方法

不知道你是不是第一种情况,实际测试中是可以获取的

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