提交 bab7e929 编写于 作者: DCloud-yyl's avatar DCloud-yyl 提交者: DCloud_LXH

update unipush.md

上级 fa223681
......@@ -49,22 +49,22 @@ UniPush推送服务由“个推”专为DCloud订制提供技术支持,因此
## 第一步:开通UniPush推送服务
[点此查看如何开通UniPush推送服务](https://ask.dcloud.net.cn/article/35716)
[点此查看如何开通UniPush推送服务](https://ask.dcloud.net.cn/article/35716)
### Android平台支持厂商推送通道
**注意:开通UniPush后,需在后台配置“厂商推送设置”,配置好厂商参数后请一定要提交云打包,并且使用“自有证书”打签名包;将云打包后的安装包安装到手机上,再获取cid 进行离线厂商推送测试,不可使用基座方式获取的cid进行离线厂商推送测试。**
![](https://www.dcloud.io/docs/a/unipush/s0.png)
**注意:开通UniPush后,需在后台配置“厂商推送设置”,配置好厂商参数后请一定要提交云打包,并且使用“自有证书”打签名包;将云打包后的安装包安装到手机上,再获取cid 进行离线厂商推送测试,不可使用基座方式获取的cid进行离线厂商推送测试。**
![](https://www.dcloud.io/docs/a/unipush/s0.png)
获取手机厂商推送设置信息请参考:[厂商推送应用创建配置流程](https://www.dcloud.io/docs/a/unipush/manufacturer.pdf)
### iOS平台配置推送证书
### iOS平台配置推送证书
iOS平台需要使用到苹果的APNS,务必在后台正确配置苹果推送证书,参考:[iOS推送证书配置](https://ask.dcloud.net.cn/article/35716#ios)
## 第二步:服务端下发推送消息
## 第二步:服务端下发推送消息
<a id="intent"/>
使用厂商推送下发推送消息必须设置intent,该数据格式是Android原生Intent对象序列化由来。具体可参考[详情](https://blog.csdn.net/u011068702/article/details/51406572)。并且intent须符合以下格式,此格式时在个推定义额基础上二次封装,所以必须以此格式为准。不按此格式设置intent可能出现用户点击推送消息无法启动APP的问题。
intent数据格式如下:
intent数据格式如下:
```
intent://io.dcloud.unipush/?#Intent;scheme=unipush;launchFlags=0x4000000;component=io.dcloud.HBuilder/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title=测试标题;S.content=测试内容;S.payload=test;end
```
......@@ -73,31 +73,31 @@ intent://io.dcloud.unipush/?#Intent;scheme=unipush;launchFlags=0x4000000;compone
S.title=的值为推送消息标题,对应5+ API中[PushMessage](https://www.html5plus.org/doc/zh_cn/push.html#plus.push.PushMessage)对象的title属性值;
S.content=的值为推送消息内容,对应5+ API中[PushMessage](https://www.html5plus.org/doc/zh_cn/push.html#plus.push.PushMessage)对象的content属性值;
S.payload=的值为推送消息的数据,对应5+ API中[PushMessage](https://www.html5plus.org/doc/zh_cn/push.html#plus.push.PushMessage)对象的payload属性值;
**launchFlags=0x4000000字段,解决接收多条通知后点击可能无法触发click事件的问题**
**launchFlags=0x4000000字段,解决接收多条通知后点击可能无法触发click事件的问题**
注意事项:
注意事项:
- intent格式与个推的多厂商pdf文档中描述的不一样,以此格式为准
- intent是为了兼容Android平台的数据,但为了保持兼容性,建议iOS平台也配置此数据
- action=android.intent.action.oppopush为固定的数据,是兼容oppo设备的离线推送功能,不需要修改
- component=io.dcloud.HBuilder/io.dcloud.PandoraEntry中的io.dcloud.HBuilder为应用的包名,与App云端打包界面设置的Android包名一致
- component=io.dcloud.HBuilder/io.dcloud.PandoraEntry中的io.dcloud.HBuilder为应用的包名,与App云端打包界面设置的Android包名一致
![](https://partner-dcloud-native.oss-cn-hangzhou.aliyuncs.com/images/uniapp/push/packagename.png)
### 通过开发者中心后台Web页面发送Push消息
登录[DCloud开发者中心](https://dev.dcloud.net.cn/),在“我创建的应用”列表中选择应用,左侧选择“Uni Push”,打开消息推送页面。
**tips** 推送页面改版,详情了解[开发者中心Unipush推送页面优化介绍](https://ask.dcloud.net.cn/article/36932)
**使用厂商通道必须使用“透传消息”类型下发推送消息**
登录[DCloud开发者中心](https://dev.dcloud.net.cn/),在“我创建的应用”列表中选择应用,左侧选择“Uni Push”,打开消息推送页面。
**tips** 推送页面改版,详情了解[开发者中心Unipush推送页面优化介绍](https://ask.dcloud.net.cn/article/36932)
**使用厂商通道必须使用“透传消息”类型下发推送消息**
![](https://www.dcloud.io/docs/a/unipush/p1.jpg)
### 使用代码通过服务端接口推送消息
服务端集成时首先需要获取AppId、AppKey、MasterSecret参数,登录[DCloud开发者中心](https://dev.dcloud.net.cn/),在“Uni Push”下的“应用配置”页面中获取,如下图所示:
服务端集成时首先需要获取AppId、AppKey、MasterSecret参数,登录[DCloud开发者中心](https://dev.dcloud.net.cn/),在“Uni Push”下的“应用配置”页面中获取,如下图所示:
![应用信息](https://img.cdn.aliyun.dcloud.net.cn/ask/img/UniPush/unipush-info.png)
#### 如果使用uniCloud开发服务器
已经有封装好的易用插件负责服务器端开发,见:[https://ext.dcloud.net.cn/plugin?id=1680](https://ext.dcloud.net.cn/plugin?id=1680)
已经有封装好的易用插件负责服务器端开发,见:[https://ext.dcloud.net.cn/plugin?id=1680](https://ext.dcloud.net.cn/plugin?id=1680)
#### 如果使用传统服务器开发
参考“个推·消息推送”的服务端快速集成文档[http://docs.getui.com/](http://docs.getui.com/)
参考“个推·消息推送”的服务端快速集成文档[http://docs.getui.com/](http://docs.getui.com/)
![](https://partner-dcloud-native.oss-cn-hangzhou.aliyuncs.com/images/uniapp/push/unipush-api-getui.png)
......@@ -233,11 +233,11 @@ public class push2 {
```
**注意:把$intent变量赋值字符串中的io.dcloud.HBuilder换成自己应用的包名**
**注意:把$intent变量赋值字符串中的io.dcloud.HBuilder换成自己应用的包名**
<a id="server"/>
完整服务端厂商推送教程参考:
完整服务端厂商推送教程参考:
https://docs.getui.com/getui/server/rest_v2/common_args/
......@@ -271,7 +271,7 @@ UniPush推送服务已经封装好iOS&Android平台的原生集成工作,开
默认(不设置badge参数)则角标数字不变,也可以在应用运行期调用5+ API [plus.runtime.setBadgeNumber](https://www.html5plus.org/doc/zh_cn/runtime.html#plus.runtime.setBadgeNumber)动态设置角标数字
## 注意事项
### 推送通道选择逻辑
### 推送通道选择逻辑
- Android平台
**APP在线(个推推送通道可用)**
推送通知和透传消息都使用个推的推送通道下发推送消息。
......@@ -298,17 +298,17 @@ UniPush推送服务已经封装好iOS&Android平台的原生集成工作,开
HBuilderX3.0.7 之后,华为除了配置原有的厂商信息之外,需要新增配置 agconnect-services.json文件。
该文件,需要从华为开发者后台--项目设置界面下载
该文件,需要从华为开发者后台--项目设置界面下载
![](https://partner-dcloud-native.oss-cn-hangzhou.aliyuncs.com/images/uniapp/push/huawei-apconnect-services.png)
#### VIVO厂商通道
**需要在VIVO应用商店上线才能申请VIVO的厂商推送**
注意事项:
1. vivo【运营消息】,一个设备一天只能收到5条离线消息
2. vivo要求:通知文案中不能带 “包含测试、test字符”、“纯数字”、“纯表情”、“符号”或者“符号+数 字”、“表情+数字”、“表情+符号” 。
3. 1个自然日内相同文案的运营消息给同个设备发,vivo会在客户端做去重处理,导致消息不展示
4. 支持vivo推送功能HBuilderX最低版2.1.0及以上。
- vivo【运营消息】,一个设备一天只能收到5条离线消息
- vivo要求:通知文案中不能带 “包含测试、test字符”、“纯数字”、“纯表情”、“符号”或者“符号+数 字”、“表情+数字”、“表情+符号” 。
- 1个自然日内相同文案的运营消息给同个设备发,vivo会在客户端做去重处理,导致消息不展示
- 支持vivo推送功能HBuilderX最低版2.1.0及以上。
具体请参考图中数据
![](https://partner-dcloud-native.oss-cn-hangzhou.aliyuncs.com/images/uniapp/push/vivo-datas.png)
......@@ -318,19 +318,19 @@ HBuilderX3.0.7 之后,华为除了配置原有的厂商信息之外,需要
**需要在OPPO应用商店上线才能申请OPPO的厂商推送**
并且有以下要求:
1. 机型系统要求:oppo colorOS rom且版本号大于等于3.1
2. 检查手机通知权限是否打开,oppo是默认关闭的,将通知权限下的【Default】通道权限也打开。
3. 手机系统时间是否正常
- 机型系统要求:oppo colorOS rom且版本号大于等于3.1
- 检查手机通知权限是否打开,oppo是默认关闭的,将通知权限下的【Default】通道权限也打开。
- 手机系统时间是否正常
#### 小米厂商通道
1. 机型版本要求:小米rom且小米服务框架(包名:com.xiaomi.xmsf)版本号⼤于等于 105
2. 检查手机通知权限设置,小米有不重要通知功能,部分消息可能会存在通知栏不重要通知里
- 机型版本要求:小米rom且小米服务框架(包名:com.xiaomi.xmsf)版本号⼤于等于 105
- 检查手机通知权限设置,小米有不重要通知功能,部分消息可能会存在通知栏不重要通知里
#### 魅族厂商通道
1. 机型版本要求:魅族rom且魅族rom版本⼤于等于5.x
2. 检查消息是否存入了魅族手机右上角【魅族消息盒子】中
3. 清除缓存:魅族手机在设置 ---> 应用管理 ---> 所有应用 ---> 推送服务 ,点击里面的清除数据,然后再重新安装一下应用。
- 机型版本要求:魅族rom且魅族rom版本⼤于等于5.x
- 检查消息是否存入了魅族手机右上角【魅族消息盒子】中
- 清除缓存:魅族手机在设置 ---> 应用管理 ---> 所有应用 ---> 推送服务 ,点击里面的清除数据,然后再重新安装一下应用。
#### 谷歌FCM通道
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册