提交 e6093e6a 编写于 作者: W wanganxp

push

上级 13fbe104
......@@ -35,8 +35,9 @@
* [uni-push2.0](unipush-v2.md)
* [业务文档](unipush-v2.md)
* 开发文档
* [客户端api](api/plugins/push.md)
* [服务端api](uniCloud/uni-cloud-push/api.md)
* [uni-app客户端api](https://uniapp.dcloud.net.cn/api/plugins/push.html)
* [uni-app x客户端api](https://uniapp.dcloud.net.cn/uni-app-x/api/push.html)
* [服务端api](https://uniapp.dcloud.net.cn/uniCloud/uni-cloud-push/api.html)
* [uni-push2.0、uni-id、uni统计的组合](uniCloud/uni-cloud-push/mate.md)
* [uni统计](uni-stat.md)
* [uni统计2.0](uni-stat-v2.md)
......
# uni-push
uni-push是DCloud与合作伙伴共同推出的统一推送服务。该业务的完整业务介绍另见:[uni-push](https://uniapp.dcloud.net.cn/unipush-v2.html)
uni-push是DCloud与合作伙伴共同推出的统一推送服务。用于从服务器端推送消息到客户端。
它包括在线推送、离线推送,聚合了Apple、华为、小米、OPPO、VIVO、魅族、Google等多个手机厂商的推送通道。
若不使用服务器推送,仅想创建手机通知栏本地消息,也需要使用本模块的API。
它是一个云端一体的业务,涉及多份文档:
1. 业务介绍:对于未使用过uni-push的新用户,本文必读:[uni-push业务介绍](https://uniapp.dcloud.net.cn/unipush-v2.html)
2. 客户端API,即本文
3. 服务器API,[另见](https://uniapp.dcloud.net.cn/uniCloud/uni-cloud-push/api)
本文是 uni-app x 中涉及该业务的API的介绍。
## uni.getPushClientId(options) @getpushclientid
......@@ -28,7 +36,7 @@ uni-push是DCloud与合作伙伴共同推出的统一推送服务。该业务的
<!-- UTSAPIJSON.onPushMessage.tutorial -->
## 注意事项
### 注意事项
* 如果多次监听`onPushMessage`,那么事件也会多次触发,所以当不需要监听的时候需要`offPushMessage`
......@@ -56,7 +64,7 @@ uni-push是DCloud与合作伙伴共同推出的统一推送服务。该业务的
<!-- UTSAPIJSON.getChannelManager.tutorial -->
## 注意事项
### 注意事项
* 由于各大厂商限制推送频次,当使用厂商离线推送的时,需要在不同品牌手机后台开通自分类权益,[限制数量说明](https://docs.getui.com/getui/mobile/vendor/qps/)
- [华为](https://developer.huawei.com/consumer/cn/doc/HMSCore-Guides/message-classification-0000001149358835)
......@@ -88,6 +96,12 @@ uni-push是DCloud与合作伙伴共同推出的统一推送服务。该业务的
<!-- UTSAPIJSON.general_type.param -->
## 示例代码
hello uni-push是可跑通、同时包含客户端和服务器完整流程的代码。[https://gitcode.net/dcloud/hello-uni-push](https://gitcode.net/dcloud/hello-uni-push)
在业务开通、配置正确的情况下,执行项目下的云函数,即可给客户端发送消息。
## 注意事项
* 关于隐私安全问题,由于在调用`getPushClientId`或者`onPushMessage`时,才会初始化个推SDK,所以开发者要确保弹出隐私框之前不调用此两项API。
......@@ -130,5 +144,4 @@ uni-push是DCloud与合作伙伴共同推出的统一推送服务。该业务的
* uni-app x 的push模块仅支持uni-push2,不再支持uni-push1。但这不意味着强绑uniCloud的付费行为。而是DCloud的所有云服务都将统一纳入到uniCloud体系管理,开发者在开通uni-push2后,也可以拿到mastersecret,然后在自己的服务器去直接连接个推服务器。
* uni-push是一个独立的模块,在标准基座中并不包含。开发push需要首先编写push相关代码,然后打包自定义基座,根据摇树规则,打出的自定义基座才会包含push模块。详见[摇树](../manifest.md#treeShaking)
* 创建本地通知栏,理论上可以和个推的服务无关。但目前也都包含在push模块里了。如果您不需要服务器推送,只需要本地创建通知栏,也需要打包push模块才行。
* hello uni-push是可跑通的参考代码。[https://gitcode.net/dcloud/hello-uni-push](https://gitcode.net/dcloud/hello-uni-push)
* 部分手机创建本地通知时,App如果在后台状态,点击通知消息并不会拉起App,原因是厂商增加了后台弹窗权限,需要用户手动打开此权限。
......@@ -206,6 +206,7 @@ uni-push产品有2个入口:
<img width="50%" style="max-width:260px;" src="https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/WechatIMG589.jpeg"/>
uni-app x有摇树机制,需要在代码中编写api调用,然后打包就会包含push模块。[详见](https://uniapp.dcloud.net.cn/uni-app-x/manifest#treeShaking)
#### 小程序中使用uni-push2.0的白名单配置@useinmp
......@@ -336,10 +337,10 @@ exports.main = async (event, context) => {
# 最佳实践
上一章,演示了基于“客户端推送标识”的消息推送,仅为方便理解和体验;在业务开发中,通常是指定消息的接收人,而不是某个设备。
如果项目使用[uni-id-pages](https://ext.dcloud.net.cn/plugin?id=8577),即可直接指定基于uni-id的user_id、user_tag,并可筛选设备的平台、登录信息是否有效等,执行推送消息。
如果项目使用[uni-id-pages](https://ext.dcloud.net.cn/plugin?id=8577),即可直接指定基于uni-id的`user_id``user_tag`,并可筛选设备的平台、登录信息是否有效等,执行推送消息。
uni-id-pages已经内置:在登录账号、退出账号、切换账号、token续期、注销账号5个时机,管理uni-id-device表、opendb-device表与user_id、push_clientid、platform、os_name等字段的映射关系。[详情参考](/uniCloud/uni-cloud-push/mate)
uni-id-pages已经内置:在登录账号、退出账号、切换账号、token续期、注销账号5个时机,管理uni-id-device表、opendb-device表与`user_id``push_clientid``platform``os_name`等字段的映射关系。[详情参考](/uniCloud/uni-cloud-push/mate)
此外uni-push2.0 还提供了uni-admin中的web控制台[uni-push-admin](https://ext.dcloud.net.cn/plugin?name=uni-push-admin)如图,包含消息推送、推送统计等功能的,
此外uni-push2.0 还提供了uni-admin中的web控制台[uni-push-admin](https://ext.dcloud.net.cn/plugin?name=uni-push-admin)包含消息推送、推送统计等功能,而且是开源的,可自定义。如图:
![](https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/f981f620-f9de-11ec-8412-6b7a68f609ab_0.jpg)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册