villayong
villayong
  • 发布:2015-06-02 16:33
  • 更新:2016-10-23 20:49
  • 阅读:11058

使用Hbuilder个推插件推送消息到指定用户,html页面click监听失败。

分类:HTML5+

大神们好,小弟刚学习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 是这个值吗?

请大神们看下我的实现方案是否可行,这里面的问题应该如何解决,谢谢!!

2015-06-02 16:33 1 条评论 负责人:无 分享
已邀请:
villayong

villayong (作者)

有解决的方案吗?

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

getui_johny - 个推技术支持

用透传消息模版吧,TransmissionTemplate这个。
当客户端接收到透传消息后,自己处理成通知栏展示出来,这样的话,通知栏的点击事件是可以捕获到的。

  • 1***@qq.com

    额 但是app 在离线状态下 怎么能收到透传消息。。透传不是只在app 前台和后台的时候才能收到吗

    2017-11-20 15:48

  • 1***@qq.com

    目前的问题是app 在离线状态下 收到通知栏的消息 点击进入app后 可以触发相应的动作

    2017-11-20 15:49

failedtocopy

failedtocopy

哥们 ,这个问题有解决问题吗 ? 我现在也遇推送问题,还有个问题,如何推送给B的呢?
我的理解是
1.“用户A发了一个分享,分享给用户B” 调用服务端数据,根据B用户的token和clientId和推送内容调用个推,给B用户推送一条消息。

  1. 服务端事先要有B的信息,否则无法找到B的手机设备,实际上每个用户登录时都要判断是否保存token和clientId,如果否就需要保存一下
后海

后海

你的html5 个推定向推送实现了么?

求分享,只实现了全部推送,好像是个推的js插件版本没有实现定向推送

qmit

qmit

求解答。

点点滴滴滴

点点滴滴滴

如果想从服务器端推送消息到客户端的话,个人觉得GoEasy推送还不错,它有Restful API 支持多语言,而且针对java他们还特别做了SDK,使用很简单方便。同时它也支持客户端推送。由于它支持websocket 和polling两种连接方式所以兼顾大多数主流浏览器,低版本的IE浏览器也是支持的,很适合需要快速建立实时web通信的项目。https://goeasy.io

c***@163.com

c***@163.com

我这边click事件也失效了,有解决方案吗

  • 1***@qq.com

    你好请问后来事件是怎么处理的?问题解决了吗?

    2019-02-14 09:34

getui_johny

getui_johny - 个推技术支持

Click事件监听:
应用在运行,用户点击了消息中心的消息,会触发click事件。
这是HB文档上的描述。

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