mfans
mfans
  • 发布:2015-11-20 12:21
  • 更新:2017-11-06 15:40
  • 阅读:2515

有完整实现过推送的吗?都来交流下

分类:HTML5+

本人现在在安卓和苹果端实现推送功能,做类似qq信息那样的推送,用的都是透传信息.具体业务: 1.app在前台时接收的推送不显示在通知中心,直接更新角标和业务处理;2.app在后台时推送会显示在消息中心;3.app退出时推送显示在消息中心.

目前可以结合app的切换状态,设置程序是否将消息显示在系统消息中心来实现:
$.plusReady(function() {
plus.push.setAutoNotification(false); //程序运行时设置消息中心不显示消息,recive接收
document.addEventListener("pause", function() {
plus.push.setAutoNotification(true); //切换到后台时设置消息中心显示消息,click接收
console.log("pause");
}, false);
document.addEventListener("resume", function() {
plus.push.setAutoNotification(false); //切换到前台时设置消息中心不显示消息,recive接收
console.log("resume");
}, false);

再配合符合格式的透传信息就可以实现类似qq的业务,有些人不明白符合格式的透传信息,在这里说下
符合格式的透传信息 :
{title:"测试 2",content:"测试的数据 2",payload:{"Type":"2","Count":"10","Msg":"ddddddddd"}}
不符合格式的透传信息 :
{"Type":"2","Count":"10","Msg":"ddddddddd"}

但在这里就碰到click接收问题了,click点击会获取点击的通知的信息.如果我的app在后台,服务端推送了3个通知,不管用户点击哪个通知,我可以获取所有通知然后业务处理,再删除所有通知,安卓下是可以这样变通的,但是在ios下并不能获取所有通知,那获取click的数据就不是完整的,那我该如何处理.

或者说我把过程改下,使用不符合格式的透传信息,这样前台或者后台都可以直接recive,app退出可以通过服务端推送强制启动app,也可以recive,不知道这样做有没有问题,我测试了qq关闭程序的时候接收到通知,点击通知的时候qq是已经打开的状态了,没有加载app的过程,不知道有没有什么区别.

或者再变通下,只接受通知,然后在click或者recive 里边通过ajax获取所有要更新的数据.

大家都是怎么实现的来说说看..

2015-11-20 12:21 负责人:无 分享
已邀请:
DCloud_App_Array

DCloud_App_Array

  1. 这里的业务都是以系统通知中心的业务为基础获取信息的,此逻辑本身就不够健全,在Android平台通知栏上的消息是可以被系统清除的,建议应用切换到前台后通过ajax从服务器获取完整的内容(实际上QQ也是类似这种逻辑来获取聊天内容的)
  2. 激活程序后是否重新加载取决于上一次是否退出应用,如果没有退出则直接激活应用(这样就没有加载app的过程了)。Android平台在点击退出的时候可以把应用切换到后台(参考http://ask.dcloud.net.cn/question/2484);iOS按Home键其实不一定退出应用,系统会根据当前系统资源状态动态退出应用。
n***@163.com

n***@163.com

兄弟java端为何就好像格式错误

该问题目前已经被锁定, 无法添加新回复