先提供各个官方入口
uni-app官方文档入口
https://uniapp.dcloud.io/api/plugins/push
uniPush官方使用指南
https://ask.dcloud.net.cn/article/35622
推送H5+API接口:
https://www.html5plus.org/doc/zh_cn/push.html
基础环境准备
2.1 DCLOUD平台配置
参考官方教程在dcloud中配置各个厂商的api和secret https://ask.dcloud.net.cn/article/35716
为啥要配置厂商呢:
为了在app关闭的时候,可以通过厂商的服务器推送消息给手机通知系统。第三方的消息推送会被阻挡,最好的方式就是按照厂商的要求接入各个推送服务。庆幸的事情,这部分DCLOUD已经帮你做好了。你只需要注册下各个厂商的开发平台,按到appid和secret登录dcloud后台即可。
2.1 Uni-app权限配置
2.3 准备自定制测试基座或者云打包
Hbuilder的基座配置的信息都是dcloud的,所以用被人的app是没办法测试推送服务的。解决这个问题有两种
1,云打包时打包成为自己的app后测试
2,制作自定义的基座(很简单),这个基座的信息都是自己的,所以可以测试
运行的时候选择自定制基座,或者直接云打包后的的apk安装到手机测试。
3 体验推送(帮助理解推送的过程)
3.1 APP端代码
代码位置只能在app.vue的onLaunch中,其他地方可能会有问题。
这里listener监听的两种事件
- “click”-从系统消息中心点击消息启动应用事件;
- “receive”-应用从推送服务器接收到推送消息事件。
上面方法准备好了app端的基本代码,这段代码实现了从推送中心获取消息的能力。具体的实现方式我们可以先不关注。
3.1 测试消息推送(无需服务器代码)
这里填写的cid就是APP代码段获取到的clientId,填入后预览系统提示发送成功。
var info = plus.push.getClientInfo();
console.log( JSON.stringify( info ) );
注意:
- 手机必须是云打包或者自定义基座运行的app
- 填写正确clientId,这个id定位了你的手机,可以理解为手机的ip。
- 手机通知权限要打开
服务器端代码请参考后端所做 根据不同版本导入不同个推sdk
厂商支持unipush 重中之重 直接导致离线推送的成功与否
制作之前请详细阅读完这篇文章 什么厂商需要怎么做 证书如何制作(安卓和ios)
华为的不是最新的 教程生成密钥
在项目下,再添加一个web应用 这里选一下web 那个
然后就有了 点击开通,点击里面的生成秘钥对就ok了
华为手机的话必须云打包才能测试离线推送 必须是自有证书打包
小米的话去小米网站设置就好 小米很简单