cncba
cncba
  • 发布:2016-12-12 20:38
  • 更新:2016-12-13 00:03
  • 阅读:3226

个推的显示问题

分类:5+ SDK

本人做网站开发的,没做过APP,第一次用MUI做APP。
经过三四天的研究, 终于把消息推送测试成功了。

但目前还有两个问题:

  1. 个推的样式竟然是AND2.2那种,白底的,没有用手机系统的样式。不知道该怎么调?(个推的DEMO APP显示是正常的)

  2. 系统进程中关闭APP后, 收不到PUSH消息,只有等打开APP后才会弹出PUSH消息?(个推的DEMO APP也是这样。所以我猜DLOUD是没有办法解决的?)

2016-12-12 20:38 负责人:无 分享
已邀请:
cncba

cncba (作者)

问题解决了。

作为APP开发的小白,根本不了解个推里 “推送通知”和“透传消息”的区别,因为在消息推送里,也有透传的选项。。。
而DCLOUD把重要的文档写在ASK里这种懒省事的做法实在是让人无语,而且文档写的很乱,有些细节写的也不清楚,让WEB开发者使用DCLOUD时会有一个接一个的坑。

问题1:
感谢@亦是非 提醒我,又重新看两遍 http://ask.dcloud.net.cn/article/34 这个问答(文档?),搞清楚了什么是 “符合格式”的透传消息。
使用个推的透传消息,按照格式发送消息内容,安卓下终于正常的出消息提示了。
原来一直用的是 个推的 “推送通知”,所以出来这么丑的提示。

另外还有一个坑,同样的一个JSON消息体,IOS和安卓的透传消息发送过来封装的格式是不一样的, 这点文档里并没有写到。
对于“符合格式”的消息体 {title:"title",content:"content",payload:{newsId:123}},
JS获取到的msg对象在安卓下:

  • click 事件里:
    msg = {UUID:xxx, appid:xxx, title:"title",content:"content",payload:"{\"newsId\":\"123\"}"}
    payload是一个未DECODE的 JSON,需要使用 JSON.parse() 解析这个JSON
  • receive事件里:
    msg={"UUID":"xxxx","title":"title","appid":"xxxx","content":"content","payload":"{\"newsId\":123}"}
    同click事件返回一样, payload 是一个string 需要 JSON.parse

IOS下:

  • click 事件里(就是经过APS服务器的消息):
    msg = {"title":"xx","type":"click","content":"body","payload":{"gurl":"sdk.open.extension.getui.com:8123","payload":"{\"title\":\"标题2\",\"content\":\"显示的消息体2\",\"payload\":{\"newsId\":\"123\"}}","ge":"1","gmid":"xxxxx"},"aps":{"mutable-content":1,"sound":"default","alert":{"body":"body"}}}
    msg.payload.payload才是传递的消息体,并且是string格式,需要 JSON.parse:
    newId = JSON.parse(msg.payload.payload).payload.newsId
  • receive事件里:
    msg = {"title":"title","type":"receive","content":"content","payload":{"newsId":"4258"},"aps":null}
    可以直接获取到消息体JSON的value值

    以上可以看出,IOS和安卓下消息发送接收的方式差别很大,CLDOUD文档没有把这块儿写出来。

问题2:
手机问题,大部分的APP后台SERVICE都无法存活导致推送消息无法送达,只有打开APP后才能收到。

最后再吐槽一下DCLOUD的文档,给我的感觉 DCLOUD 面向的是有较多原生开发经验的APP开发者,从而提供的一个WEBVIEW的插件。并不是适合转型 过来的WEB开发者用的东西。
文档这块儿真是要提高一下用户体验了。

亦是非

亦是非

透传消息不是这个格式。

  • cncba (作者)

    谢谢,我测试了个推的 透传消息,但是APP端没有提示消息?只有APP打开的时候,程序能接收到通知,但也是没有提示。

    2016-12-12 21:01

  • 亦是非

    你ios的,应该走ios 的专用通道

    你可以去找下相关的文档

    我知道安卓是可以的

    2016-12-12 21:38

  • 亦是非

    不对,你的也是安卓,正确写应该是没问题的啊 你的是什么手机

    2016-12-12 21:39

  • cncba (作者)

    谢谢, 解决了~

    2016-12-12 22:25

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