大神们好,小弟刚学习html5 app开发,目前在研究使用个推推送消息到特定用户,
业务场景如下:用户A发了一篇文章并分享给了用户B,想通过个推告知用户B,用户B点击个推通知,直接进入用户A发布的文章列表页面(非应用的index页面)。
目前开发步骤如下:
(通过hbuilder个推插件配置好了相关信息,并打包发布到android中测试)
1:用户登录时,在html中通过 plus.push.getClientInfo(); 获取用户设备信息,传入后台保存到数据库,主要记录token和clientId,和系统userId关联起来。
2 :用户A发了一个分享,分享给用户B,后台代码逻辑:查询到用户B的token和clientId,通过个推的服务端编程,调用个推的推送接口**NotificationTemplate**,能够成功的让用户B看到这条推送通知,特定用户推送成功。
问题出现了:
看api NotificationTemplate 可以使用透传消息,我的思路是把想点击推送通知直接打开的页面写入到透传消息中, template.setTransmissionContent(“对应文章列表html”)。然后在index页面通过监听click事件,获取该msg中的透传消息,然后调用mui.openWindow()直接打开页面,不进入hbuilder配置的入口页面Index.html.
现在出现两个问题:
1:用户B在应用打开的情况下点击得到的推送通知,无法打开新的应用,当前应用也退出了。
2:用户B在应用退出的情况下点击得到的推送通知,可以打开应用,但无法触发click事件。
2.1 Hbuilder配置的入口页面(index.html),打开应用时,跳转到index.html,所以我是在index.html中添加了监听click事件
mui.plusReady(function() {
//推送消息监听
plus.push.addEventListener( "click", function(msg) {
alert("9999999");
alert(msg.content);
alert(msg.title);
alert(msg.payload);//获取透传消息,不知道对不对?
});
});
结果未执行任何alert语句。不知道什么原因,一直不大清楚这个click监听应该写在哪个地方,如果在多个页面写了监听,点击一次推送消息,是不是会执行没一个页面中的监听事件呢?
还有一个问题,我应该如何获取 template.setTransmissionContent(“对应文章列表html”) 这里设置的内容呢?msg.payload 是这个值吗?
请大神们看下我的实现方案是否可行,这里面的问题应该如何解决,谢谢!!
10 个回复
villayong (作者)
有解决的方案吗?
villayong (作者)
看了下个推平台客户端SDK接入文档,里面描述的应该是原生的app开发客服端实现方式,是不是用html5开发的app无法实现从服务端推送透传消息到app,然后app接收到对应的透传消息呢?
汉文
我也是监听不到这个click事件,有什么解决方案吗
_Zoe
请问你后面能监听到click事件 了吗
2015-11-10 16:28
汉文
回复 _Zoe:没有啊
2015-12-08 11:19
1***@qq.com
同求 一样监听不到click事件
2017-11-20 15:47
getui_johny - 个推技术支持
用透传消息模版吧,TransmissionTemplate这个。
当客户端接收到透传消息后,自己处理成通知栏展示出来,这样的话,通知栏的点击事件是可以捕获到的。
1***@qq.com
额 但是app 在离线状态下 怎么能收到透传消息。。透传不是只在app 前台和后台的时候才能收到吗
2017-11-20 15:48
1***@qq.com
目前的问题是app 在离线状态下 收到通知栏的消息 点击进入app后 可以触发相应的动作
2017-11-20 15:49
failedtocopy
哥们 ,这个问题有解决问题吗 ? 我现在也遇推送问题,还有个问题,如何推送给B的呢?
我的理解是
1.“用户A发了一个分享,分享给用户B” 调用服务端数据,根据B用户的token和clientId和推送内容调用个推,给B用户推送一条消息。
后海
你的html5 个推定向推送实现了么?
求分享,只实现了全部推送,好像是个推的js插件版本没有实现定向推送
qmit
求解答。
点点滴滴滴
如果想从服务器端推送消息到客户端的话,个人觉得GoEasy推送还不错,它有Restful API 支持多语言,而且针对java他们还特别做了SDK,使用很简单方便。同时它也支持客户端推送。由于它支持websocket 和polling两种连接方式所以兼顾大多数主流浏览器,低版本的IE浏览器也是支持的,很适合需要快速建立实时web通信的项目。https://goeasy.io
c***@163.com
我这边click事件也失效了,有解决方案吗
1***@qq.com
你好请问后来事件是怎么处理的?问题解决了吗?
2019-02-14 09:34
getui_johny - 个推技术支持
Click事件监听:
应用在运行,用户点击了消息中心的消息,会触发click事件。
这是HB文档上的描述。