如题:点击icon进入程序didFinishLaunchingWithOptions方法中launchOptions是nil的,无法得到消息。
但很多app都实现这种,不点通知进入,直接点app启动照样能得到推送信息的。
求大神指导~~
别的论坛里翻了个遍,发现有很多人都有这个疑问,但没人解决,希望在segmentfault知道的人不吝赐教~~
如题:点击icon进入程序didFinishLaunchingWithOptions方法中launchOptions是nil的,无法得到消息。
但很多app都实现这种,不点通知进入,直接点app启动照样能得到推送信息的。
求大神指导~~
别的论坛里翻了个遍,发现有很多人都有这个疑问,但没人解决,希望在segmentfault知道的人不吝赐教~~
推送消息出现情景和处理办法
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这个方法
不知道你是不是第一种情况,实际测试中是可以获取的
2 回答1.1k 阅读
1 回答1k 阅读✓ 已解决
1 回答2.7k 阅读
1 回答1.4k 阅读
1.7k 阅读
1 回答940 阅读
1 回答779 阅读
如果不是点击通知栏进入APP,是拿不到推送消息的。原因是这样的,如果堆积了多条应用,回调将会变得复杂,而且没用。
正确的做法是,服务器要缓存好当前的未读消息,进入应用的时候去获取未读消息。
如果要识别通知栏点击,那获取未读消息之前可能还要进行进一步逻辑处理。