首页 > 编程知识 正文

苹果怎么推送app,安卓不打开app接收推送消息

时间:2023-05-04 04:54:10 阅读:138953 作者:1992

我今天把洞填好了。 我们的APP很久以前就有推送功能代码,但实际的推送功能并不多。 然后突然发现了漏洞。 APP在杀死的状态下受到推送,进入APP,无法响应跳跃。 之所以难以填写,是因为需要杀死APP进行测试,很难调试。 最后在Hud画面上打印了各种各样的东西,找到了原因。

首先提取优秀的博客内容,整理APP在各种情况下接受推送响应的过程。

设备收到来自apns的通知,APP应用程序处理通知可能存在以下情况:

1 .如果在APP应用程序尚未加载时单击查看通知按钮,则会调用didFinishLaunchingWithOptions,而不会调用didReceiveRemoteNotification方法。

单击“关闭通知”按钮,然后单击“APP应用程序”,仅调用didFinishLaunchingWithOptions方法。

2 .应用于前台(foreground )时,收到通知时将触发didReceiveRemoteNotification方法。

3 .应用于后台1 .此时收到通知并单击查看按钮,将调用didReceiveRemoteNotification方法。

2 .单击“关闭”,然后单击“APP”,在上述两种方法都没有被调用时,只能通过applicationWillEnterForeground或applicationDidBecomeActive判断是否有通知,然后发送

如第一个所述,调用didFinishLaunchingWithOptions,但不调用didReceiveRemoteNotification。 这需要特别的解决,但是前面的人写了相关的解决方案代码,不是不执行跳转的理由,但是贴上了代码

launch选项!=nil(//app关闭时,推送[ self application : applicationdidreceiveremotenotification 3360 launch options [ @ ' uiappplications ] 请尝试自己手动运行。

最后,我找到了原因,因为在处理跳转时,我没有考虑到在APP被杀并推送跳转页面之前,APP还没有在主界面上运行,但我在这里做了一个判断

if ([ datamanagershareddatamanager ].main window.rootviewcontrolleriskindofclass 3360 [ roottabcontrollerclass ] ) /

最后一种方法是对上面的判断加else,否则加拦截,进入APP首页后发出通知,在这里接到通知后再次运行判断跳转操作的代码。 我不知道有没有更科学的处理方法

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。