我用个推发送一个消息,如果要让用户及时收到推送的消息改如何处理。
场景描述:
服务器通过个推推送消息:
1、如果应用正在用户前台运行,就直接触发相关事件(直接触发,不需要用户去通知中心点击)。
2、如果应用未在前台运行,但是属于开启状态,就通过通知中心来提醒用户。
3、如果应用未启动,通过通知中心来提醒用户。
通过发送透传消息(不符合规范), 能直接解决第一种情况,也能变相解决第二种情况,通过判断应用状态,如果应用未在前台运行,就再创建一个本地消息,作为提醒。(顺便帮忙解答一下如何判断应用状态)。
但是无法解决第三种情况。
如果发送透传系(符合情况的),第二种和第三种情况可以直接解决,但是无法解决第一种情况。
请问我应该如何处理?
5 个回复
阿峰
同问
Danny - QQ125904483
你的这个需求基本上目前的个推API很难实现(个人认为)!
首先,
你既有需要推送通知的,又有不需要通知的,那么就只能通过透传消息,原因:通知类的消息必定会产生通知栏消息。
那么,
透传不符合规范的消息可以实现前台运行的APP回调receive事件,即可满足需求1;
透传符合格式的消息可以实现通知栏通知提醒,即可满足需求2和需求3。
但是,
在应用服务端咋知道应用是不是在运行?是在前台运行还是在后台运行?
我也不知道!也没有看见官方有API...
等官方解说...
stock2
那症结在判断应用是否前台运行即可了,好像有的,类似按了home
阿峰
坑爹的是:
透传消息 到达后,如果app处于后台,会直接把 应用打开(不知道为什么)··
如果app关掉了,啥信息都接收不到(这种情况只能用个推的通知渠道来发送消息,但这个渠道无法支持自定义事件。比如我想点击通知打开某个视图,这个做不到)
判断app是前台还是后台 有2个事件,在5+api的 evemt中可以看到。
但是很坑爹的是:
我把这个状态存储在本地存储中(plus.storage或者localStorage),个推获取不到这个值。
这样我就无法控制什么时候创建本地通知。
Danny
1.透传消息收到后是否强制打开应用是透传模板TransmissionType设置的。
2.app关掉之后,符合格式的透传消息可以收到通知栏通知,且可以回调click事件。
3.并非要在客户端判断应用是否开启,是否在前台运行,而是要在应用服务端判断。
(前两点基于Android平台)
2015-10-21 08:01
小丶幽
你这个情况似乎和微信电脑端登录时的确认消息类似...参考微信的机制,它不管是否在前台运行,都会产生通知栏消息,是在操作后将消息消除的。而且还会出现偶尔无法消除的情况