欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-08-29 13:30:34
一、前期准备 在动手之前建议先看下官方文档:https://ask.dcloud.net.cn/article/id-35622__page-5 首先,在App模块配置勾选如下后,点击配置进入DCloud开发者中心 第一次进来的话,可能会要求填写相应的资料,按步骤填写即可,不做详细介绍二、在线推送 在线推送的话比较简单,坑比较少,很快就能实现 在App.vue中onLaunch生命周期中添加如下代码,其中c......

一、前期准备

        在动手之前建议先看下官方文档:https://ask.dcloud.net.cn/article/id-35622__page-5

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

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

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

二、在线推送

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

        在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模块下的通知消息uni-app如何使用Unipush实现消息推送(在线&离线)

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

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

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

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

 

 二、离线推送

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

        小米开发者平台:https://dev.mi.com/console/

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

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

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

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

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

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

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

uni-app如何使用Unipush实现消息推送(在线&离线) 这时需要用到透传消息,至于透传消息原理可以自行百度,配置好以后重复制作自定义基座,然后运行到手机操作

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

 

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

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

 透传内容如下:

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

  通知类型如下:

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

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

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

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

三、问题总结

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

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

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

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

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

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

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

常见问题:https://ask.dcloud.net.cn/article/id-36611__page-4

本文地址:https://blog.csdn.net/weixin_45122120/article/details/109362385

相关标签: uni-app uniPush