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

一、前期准备

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

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

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

二、在线推送

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

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

// #ifdef APP-PLUS
			var pinf = plus.push.getClientInfo();
			var cid = pinf.clientid; //客户端标识
			console.log('cid:' + cid);
			plus.push.addEventListener(
				'click',
				function(msg) {
					uni.navigateTo({
						url: 'pages/new_order/new_order'
					});
				},
				false
			);
			plus.push.addEventListener(
				'receive',
				function(msg) {
					uni.navigateTo({
						url: 'pages/new_order/new_order'
					});
				},
				false
			);
// #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问答

  • 9
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 25
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值