Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
你丑我先上
unidocs-zh
提交
629c4388
U
unidocs-zh
项目概览
你丑我先上
/
unidocs-zh
与 Fork 源项目一致
Fork自
DCloud / unidocs-zh
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
629c4388
编写于
7月 05, 2022
作者:
DCloud_JSON
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改uni-push2.0的文档
上级
9254010a
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
62 addition
and
22 deletion
+62
-22
docs/uniCloud/uni-push/api.md
docs/uniCloud/uni-push/api.md
+28
-3
docs/uniCloud/uni-push/options.md
docs/uniCloud/uni-push/options.md
+1
-1
docs/uniCloud/uni-push/starter.md
docs/uniCloud/uni-push/starter.md
+33
-18
未找到文件。
docs/uniCloud/uni-push/api.md
浏览文件 @
629c4388
...
@@ -4,8 +4,32 @@
...
@@ -4,8 +4,32 @@
## 客户端API
## 客户端API
### getPushClientId()
### getPushClientId(
OBJECT
)
获取客户端唯一的推送标识,注意这是一个异步的方法
获取客户端唯一的推送标识,注意这是一个异步的方法
**OBJECT 参数说明**
|参数名|类型|必填|说明|
|:-|:-|:-|:-|
|success|Function|是|接口调用的回调函数,详见返回参数说明|
|fail|Function|否|接口调用失败的回调函数|
|complete|Function|否|接口调用结束的回调函数(调用成功、失败都会执行)|
**success 返回参数说明**
|参数|类型|说明|
|:-|:-|:-|
|cid|String| 个推客户端推送id,对应uni-id-device表的push_clientid|
|errMsg|String| 错误描述|
**fail 返回参数说明**
|参数|类型|说明|
|:-|:-|:-|
|errMsg|String| 错误描述|
常见报错:
`getPushClientId:fail register fail: {\"errorCode\":1,\"errorMsg\":\"\"}`
,这种情况请检查:当前应用是否已开通uni-push2.0
示例代码:
示例代码:
```
js
```
js
uni
.
getPushClientId
({
uni
.
getPushClientId
({
...
@@ -18,6 +42,7 @@
...
@@ -18,6 +42,7 @@
})
})
```
```
### onPushMessage([callback,eventName])
### onPushMessage([callback,eventName])
启动监听推送消息事件
启动监听推送消息事件
代码示例:
代码示例:
...
@@ -84,7 +109,7 @@ await uniPush.sendMessage(OBJECT)
...
@@ -84,7 +109,7 @@ await uniPush.sendMessage(OBJECT)
|content|String|是|无|通知栏内容,长度小于50|APP|
|content|String|是|无|通知栏内容,长度小于50|APP|
|payload|String、Objcet|是|无|推送透传数据,app程序接受的数据,长度小于800| |
|payload|String、Objcet|是|无|推送透传数据,app程序接受的数据,长度小于800| |
|badge|Number、String|否|无|设置应用右上角数字,用于提醒用户未阅读消息数量,支持在原有数字上的+、-操作;
</br>
例如:badge=+1,表示当前角标+1;
</br>
badge=-1,(仅iOS支持)表示当前角标-1(角标>=0);
</br>
badge=1,(仅iOS和华为EMUI版本10.0.0+支持)表示当前角标置成1。| ios、android-华为|
|badge|Number、String|否|无|设置应用右上角数字,用于提醒用户未阅读消息数量,支持在原有数字上的+、-操作;
</br>
例如:badge=+1,表示当前角标+1;
</br>
badge=-1,(仅iOS支持)表示当前角标-1(角标>=0);
</br>
badge=1,(仅iOS和华为EMUI版本10.0.0+支持)表示当前角标置成1。| ios、android-华为|
|channel|Object|否|无|消息渠道设置,避免被限量推送,需要在各家发邮件申请,详情下方
[
channel说明
](
#channel
)
| android|
|channel|Object|否|无|消息渠道设置,避免被限量推送
、静默推送(静音且需下拉系统通知栏才可见通知内容)
,需要在各家发邮件申请,详情下方
[
channel说明
](
#channel
)
| android|
|request_id|String|否|无|请求唯一标识号,10-32位之间;如果
`request_id`
重复,会导致消息丢失||
|request_id|String|否|无|请求唯一标识号,10-32位之间;如果
`request_id`
重复,会导致消息丢失||
|group_name|String|否|无|任务组名。多个消息任务可以用同一个任务组名,后续可根据任务组名查询推送情况(长度限制100字符,且不能含有特殊符号);
</br>
仅基于user_id、cid、tag指定消息接收者,或对应用的所有用户群发推送消息时有效。||
|group_name|String|否|无|任务组名。多个消息任务可以用同一个任务组名,后续可根据任务组名查询推送情况(长度限制100字符,且不能含有特殊符号);
</br>
仅基于user_id、cid、tag指定消息接收者,或对应用的所有用户群发推送消息时有效。||
|sound|String|否|无|消息提醒铃声设置。android需要设置channel生效,详见下方
[
铃声设置注意
](
#sound
)
</br>
如果铃声文件未找到,响铃为系统默认铃声。
</br>
铃声文件需要使用uni原生插件
[
点此打开
](
https://ext.dcloud.net.cn/plugin?id=690
)
打包后生效。
</br>
建议iOS和Android铃声使用一致的文件名称。直接填写文件名,不含扩展名;如:pushsound.caf或pushsound.mp3,直接填写pushsound即可。|
|sound|String|否|无|消息提醒铃声设置。android需要设置channel生效,详见下方
[
铃声设置注意
](
#sound
)
</br>
如果铃声文件未找到,响铃为系统默认铃声。
</br>
铃声文件需要使用uni原生插件
[
点此打开
](
https://ext.dcloud.net.cn/plugin?id=690
)
打包后生效。
</br>
建议iOS和Android铃声使用一致的文件名称。直接填写文件名,不含扩展名;如:pushsound.caf或pushsound.mp3,直接填写pushsound即可。|
...
@@ -1587,7 +1612,7 @@ uni-cloud-push 扩展库的errCode码以uni-cloud-push-error-开头,如:uni-
...
@@ -1587,7 +1612,7 @@ uni-cloud-push 扩展库的errCode码以uni-cloud-push-error-开头,如:uni-
margin-right: 10px;
margin-right: 10px;
text-align: center;
text-align: center;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
width: 2
3
0px;
width: 2
0
0px;
font-size: 14px;
font-size: 14px;
box-shadow: 0 0 10px #ccc;
box-shadow: 0 0 10px #ccc;
}
}
...
...
docs/uniCloud/uni-push/options.md
浏览文件 @
629c4388
...
@@ -829,7 +829,7 @@ apn静默推送 可参考<a target="_blank" href="https://developer.apple.com/li
...
@@ -829,7 +829,7 @@ apn静默推送 可参考<a target="_blank" href="https://developer.apple.com/li
margin-right: 10px;
margin-right: 10px;
text-align: center;
text-align: center;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
width: 2
3
0px;
width: 2
0
0px;
font-size: 14px;
font-size: 14px;
box-shadow: 0 0 10px #ccc;
box-shadow: 0 0 10px #ccc;
}
}
...
...
docs/uniCloud/uni-push/starter.md
浏览文件 @
629c4388
# 快速上手
# 快速上手
本文
通过4个步骤,带领你开通与配置uni-push2.0并简单体验使用流程。
通过4个步骤,带领你开通与配置uni-push2.0并简单体验使用流程。
## 第一步:开通 uniPush
## 第一步:开通 uniPush
uni-push产品有2个入口:
uni-push产品有2个入口:
...
@@ -29,8 +29,7 @@ uni-push产品有2个入口:
...
@@ -29,8 +29,7 @@ uni-push产品有2个入口:
应用开通 uni-push 功能时,需要提交应用相关信息,如下图所示:
应用开通 uni-push 功能时,需要提交应用相关信息,如下图所示:
![](
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/381bd60a-a38b-412a-8bfb-6cafb9788a6a.jpg
)
![](
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/381bd60a-a38b-412a-8bfb-6cafb9788a6a.jpg
)
关联服务空间说明:
关联服务空间说明:uni-push2.0需要开发者开通uniCloud。不管您的业务服务器是否使用uniCloud,但专业推送服务器在uniCloud上。
uni-push2.0需要开发者开通uniCloud。不管您的业务服务器是否使用uniCloud,但专业推送服务器在uniCloud上。
-
如果您的后台业务使用uniCloud开发,那理解比较简单。
-
如果您的后台业务使用uniCloud开发,那理解比较简单。
-
如果您的后台业务没有使用uniCloud,那么也需要在uni-app项目中创建uniCloud环境,在HBuilderX中和dev的uni-push配置中均绑定相同服务空间,之前的业务仍然由客户端连接原有传统服务器,push相关功能则通过uniCloud服务空间实现。如果您之前使用过三方推送服务的话,可以理解为您的服务器不再调用个推服务器,而是改为调用uniCloud服务空间。
-
如果您的后台业务没有使用uniCloud,那么也需要在uni-app项目中创建uniCloud环境,在HBuilderX中和dev的uni-push配置中均绑定相同服务空间,之前的业务仍然由客户端连接原有传统服务器,push相关功能则通过uniCloud服务空间实现。如果您之前使用过三方推送服务的话,可以理解为您的服务器不再调用个推服务器,而是改为调用uniCloud服务空间。
...
@@ -69,7 +68,7 @@ uni-push2.0需要开发者开通uniCloud。不管您的业务服务器是否使
...
@@ -69,7 +68,7 @@ uni-push2.0需要开发者开通uniCloud。不管您的业务服务器是否使
如果业务逻辑上需要创建“通知栏消息”来提醒用户;可以在监听到消息内容后,使用创建本地消息API
[
plus.push.createMessage
](
https://www.html5plus.org/doc/zh_cn/push.html#plus.push.createMessage
)
手动创建通知栏消息。
如果业务逻辑上需要创建“通知栏消息”来提醒用户;可以在监听到消息内容后,使用创建本地消息API
[
plus.push.createMessage
](
https://www.html5plus.org/doc/zh_cn/push.html#plus.push.createMessage
)
手动创建通知栏消息。
### 启用客户端uniPush
### 启用客户端uniPush
2.0
操作步骤打开
`manifest.json`
-
`App模块配置`
-中勾选
`uniPush 2.0`
操作步骤打开
`manifest.json`
-
`App模块配置`
-中勾选
`uniPush 2.0`
![](
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/f897176a-6216-48bd-98c8-439b2bd2cb42.jpg
)
![](
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/f897176a-6216-48bd-98c8-439b2bd2cb42.jpg
)
...
@@ -78,10 +77,10 @@ uni-push2.0需要开发者开通uniCloud。不管您的业务服务器是否使
...
@@ -78,10 +77,10 @@ uni-push2.0需要开发者开通uniCloud。不管您的业务服务器是否使
其他小程序启用方式参考微信小程序,这里不一一列举
其他小程序启用方式参考微信小程序,这里不一一列举
### 获取客户端推送标识
### 获取客户端推送标识
注意这是一个异步的方法
[
详情参考
](
https://uniapp.dcloud.io/uniCloud/uni-push/api.html#getpushclientid
)
代码示例:
代码示例:
```
js
```
js
uni
.
getPushClientId
({
uni
.
getPushClientId
({
success
:
(
res
)
=>
{
success
:
(
res
)
=>
{
let
push_clientid
=
res
.
cid
let
push_clientid
=
res
.
cid
console
.
log
(
push_clientid
)
console
.
log
(
push_clientid
)
...
@@ -89,7 +88,7 @@ uni-push2.0需要开发者开通uniCloud。不管您的业务服务器是否使
...
@@ -89,7 +88,7 @@ uni-push2.0需要开发者开通uniCloud。不管您的业务服务器是否使
fail
(
err
)
{
fail
(
err
)
{
console
.
log
(
err
)
console
.
log
(
err
)
}
}
})
})
```
```
### 监听推送消息@listener
### 监听推送消息@listener
...
@@ -112,7 +111,12 @@ export default {
...
@@ -112,7 +111,12 @@ export default {
}
}
```
```
**APP端真机运行注意:**
如果启用了离线推送,必须:经过发行原生app云打包后,客户端才能监听到推送消息。
详细的api介绍
[
详情参考
](
https://uniapp.dcloud.io/uniCloud/uni-push/api.html#getpushclientid
)
**APP端真机运行注意:**
-
如果启用了离线推送,必须:经过发行原生app云打包后,客户端才能监听到推送消息。
-
离线推送时,部分手机厂商
[
需设置消息渠道
](
https://uniapp.dcloud.io/uniCloud/uni-push/api.html#channel
)
,否则离线推送有频次限制、消息类型为:静默推送(静音且需下拉系统通知栏才可见通知内容)
## 第四步:服务端推送消息
## 第四步:服务端推送消息
消息推送属于敏感操作,只能直接或间接由服务端触发。传统的三方push服务,需要开发者在服务端配置密钥或证书,根据服务器端文档签名获取token,再向相关URL接口发起网络请求......
消息推送属于敏感操作,只能直接或间接由服务端触发。传统的三方push服务,需要开发者在服务端配置密钥或证书,根据服务器端文档签名获取token,再向相关URL接口发起网络请求......
...
@@ -128,7 +132,7 @@ uni-push的服务端sdk的体积不小,没有内置在云函数中。在需要
...
@@ -128,7 +132,7 @@ uni-push的服务端sdk的体积不小,没有内置在云函数中。在需要
<img
style=
"width:80%;max-width:600px;margin:0 10%"
src=
"https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/cb2bc39d-0dbd-4321-ba6f-cc4c782c820c.jpg"
/>
<img
style=
"width:80%;max-width:600px;margin:0 10%"
src=
"https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/cb2bc39d-0dbd-4321-ba6f-cc4c782c820c.jpg"
/>
</br>
</br>
<img
style=
"width:80%;max-width:
60
0px;margin:0 10%"
src=
"https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/66f41377-5492-4345-b85c-e6978dd5ef63.jpg"
/>
<img
style=
"width:80%;max-width:
45
0px;margin:0 10%"
src=
"https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/66f41377-5492-4345-b85c-e6978dd5ef63.jpg"
/>
</br>
</br>
下面是一个开启了
`uni-cloud-push`
扩展库的云函数的package.json示例,
**注意不可有注释,以下文件内容中的注释仅为说明,如果拷贝此文件,切记去除注释**
下面是一个开启了
`uni-cloud-push`
扩展库的云函数的package.json示例,
**注意不可有注释,以下文件内容中的注释仅为说明,如果拷贝此文件,切记去除注释**
...
@@ -164,3 +168,14 @@ exports.main = async (event, context) => {
...
@@ -164,3 +168,14 @@ exports.main = async (event, context) => {
在云函数文件目录右键(或按快捷键ctrl + r)- 上传并运行云函数,此时你的客户端将监听推送消息
在云函数文件目录右键(或按快捷键ctrl + r)- 上传并运行云函数,此时你的客户端将监听推送消息
>以上仅演示简单的uni-cloud-push扩展库的API,更多详情[文档](/uniCloud/uni-push/api)
>以上仅演示简单的uni-cloud-push扩展库的API,更多详情[文档](/uniCloud/uni-push/api)
# 最佳实践
快速上手篇章,演示了基于“客户端推送标识”的消息推送,仅为方便理解和体验。
在业务开发中,通常是指定消息的接收人,而不是某个设备。
如果项目使用
[
uni-id-pages
](
https://ext.dcloud.net.cn/plugin?id=8577
)
,即可直接指定基于uni-id的user_id、user_tag推送消息。否则你需要自己写代码实现:uni-id-pages内置的,当用户登录账号、退出账号、切换账号、注销账号等时机,在uni-id-device表做user_id与push_clientid的映射关系。
此外uni-push2.0,还提供了如图web控制台,属于uni-admin插件
[
详见
](
https://ext.dcloud.net.cn/plugin?name=uni-push-admin
)
。
![](
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/507dd9ff-0171-4c89-ba9e-30f39babfe98.jpg
)
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录