当前位置:   article > 正文

uni-app如何使用Unipush实现消息推送(在线&离线)

unipush

一、前期准备

        在动手之前建议先看下官方文档:UniPush使用指南 - DCloud问答

        首先,在App模块配置勾选如下后,点击配置进入DCloud开发者中心

        第一次进来的话,可能会要求填写相应的资料,按步骤填写即可,不做详细介绍

二、在线推送

        在线推送的话比较简单,坑比较少,很快就能实现

        在App.vue中 onLaunch 生命周期中添加如下代码,其中cid表示客户端标识,也就是用户标识

  1. // #ifdef APP-PLUS
  2. var pinf = plus.push.getClientInfo();
  3. var cid = pinf.clientid; //客户端标识
  4. console.log('cid:' + cid);
  5. plus.push.addEventListener(
  6. 'click',
  7. function(msg) {
  8. uni.navigateTo({
  9. url: 'pages/new_order/new_order'
  10. });
  11. },
  12. false
  13. );
  14. plus.push.addEventListener(
  15. 'receive',
  16. function(msg) {
  17. uni.navigateTo({
  18. url: 'pages/new_order/new_order'
  19. });
  20. },
  21. false
  22. );
  23. // #endif

 在这里需要   制作自定义基座后,运行到手机

 进入DCloud开发者中心Uni Push模块下的通知消息

        填写以上信息即可,其中目标用户中有一个CID用户,就是上面在代码中体现的cid,可以打印出来后复制进来,就会指定用户进行消息的发送

        信息填写完毕后点击预览,出现以下界面中,若预计人数中出现大于0,则表示消息可以发送

 点击确定后,app会接收到消息推送,当然需要将app打开,也就是标题中的在线推送

 二、离线推送

        离线推送的话就比较麻烦一点,需要配置厂家通道,这里以小米为例

        小米开发者平台:小米开放平台

        这里需要进行开发者认证,这里跳过这个环节(注意照片需要按照他的要求来拍摄,否则基本很难通过)

        验证通过以后我们就可以来进行应用的添加

 填写相关的信息,需要注意的是包名需要和uni-app打包时的包名一致,否者接收不到消息

 

 创建好以后,就得到了我们所需要的AppID、AppKey、AppSecret,填写到对应厂商的设置中

 

 这时需要用到透传消息,至于透传消息原理可以自行百度,配置好以后重复制作自定义基座,然后运行到手机操作

 

 第一次弄的话可以与我格式一致

 透传内容如下:

{"title": "测试离线", "content": "我是通过透传发送的消息", "payload": "test"}

  通知类型如下:

intent:#Intent;action=android.intent.action.oppopush;launchFlags=0x14000000;component=应用包名/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title=测试标题;S.content=测试内容;S.payload=test;end

 需要修改的就是上面的应用包名的地方,然后点击预览,同样出现人数的话就表示正常,可以点击确定,发送消息

 

三、问题总结

 1、厂家通道中包名与uni-app云打包中的包名不一致

 2、没有在配置好后台完成后,重新进行云打包(如果遇到接收不到消息,可重新打包测试)

 3、通知类型中的应用包名填写错误

 4、IOS系统的话需要注意打包的证书和推送的证书需要是同一个环境的,不同证书同样会推送失败(已踩坑)

我本人测试用的小米手机,也遇到了一些问题

1、应用权限没有开启后台弹出界面权限,导致接收不到通知(检查设备是否有禁止后台弹出界面,路径>>设置-应用管理-测试应用-权限管理-后台弹出界面)

 2、没有将通知设置为重要通知(检查应用通知管理权限页面,系统推荐按设置为重要通知)

可以看下下面这个链接,官方总结的一些常见问题,作用很大

常见问题:unipush 1.0常见问题 - DCloud问答

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/274515
推荐阅读
相关标签
  

闽ICP备14008679号