Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
你丑我先上
unidocs-zh
提交
013df950
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,发现更多精彩内容 >>
提交
013df950
编写于
7月 18, 2022
作者:
DCloud_JSON
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
拆分push api
上级
73c7f0eb
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
115 addition
and
273 deletion
+115
-273
docs/_sidebar.md
docs/_sidebar.md
+3
-1
docs/api/plugins/push.md
docs/api/plugins/push.md
+109
-169
docs/uniCloud/_sidebar.md
docs/uniCloud/_sidebar.md
+2
-0
docs/uniCloud/uni-cloud-push/api.md
docs/uniCloud/uni-cloud-push/api.md
+1
-103
未找到文件。
docs/_sidebar.md
浏览文件 @
013df950
...
...
@@ -19,7 +19,9 @@
*
[
uni-push1.0
](
unipush-v1.md
)
*
[
uni-push2.0
](
unipush-v2.md
)
*
[
业务文档
](
unipush-v2.md
)
*
[
开发文档
](
uniCloud/uni-cloud-push/api.md
)
*
[
开发文档
](
api/plugins/push.md
)
*
[
客户端api
](
api/plugins/push.md
)
*
[
服务端api
](
uniCloud/uni-cloud-push/api.md
)
*
[
uni-push2.0、uni-id、uni统计的组合
](
uniCloud/uni-cloud-push/mate.md
)
*
[
uni统计
](
uni-stat.md
)
*
[
uni统计1.0
](
uni-stat-v1.md
)
...
...
docs/api/plugins/push.md
浏览文件 @
013df950
`push`
是指从服务器主动给手机端发送消息。App平台和小程序平台机制不太一样,小程序平台的概念叫模板消息。
> 以下为uni-push2.0的api文档,业务介绍[详情参考](/unipush-v2)
`uni-push`
有服务器API和客户端API。
## 客户端API
### uni.getPushClientId(OBJECT)
获取客户端唯一的推送标识
注意:这是一个异步的方法,且仅支持uni-push2.0
**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\":\"\"}`
请检查:
1.
当前应用是否已开通uni-push2.0
[
详情参考
](
https://uniapp.dcloud.io/unipush-v2.html#%E7%AC%AC%E4%B8%80%E6%AD%A5-%E5%BC%80%E9%80%9A
)
2.
客户端对应平台是否已启用uni-push2.0
[
详情参考
](
https://uniapp.dcloud.io/unipush-v2.html#%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%90%AF%E7%94%A8unipush2-0
)
示例代码:
```
js
uni
.
getPushClientId
({
success
:
(
res
)
=>
{
console
.
log
(
res
.
cid
);
},
fail
(
err
)
{
console
.
log
(
err
)
}
})
```
### uni.onPushMessage([callback,eventName])
启动监听推送消息事件
代码示例:
```
js
uni
.
onPushMessage
((
res
)
=>
{
console
.
log
(
res
)
})
```
#### 回调参数说明
|名称 |类型 |描述 |
|-- |-- |-- |
|type |String | 事件类型,"click"-从系统推送服务点击消息启动应用事件;"receive"-应用从推送服务器接收到推送消息事件。|
|data |String、Object|消息内容|
### uni.offPushMessage([eventName])
关闭推送消息监听事件
示例代码:
```
js
let
eventName
=
(
res
)
=>
{
console
.
log
(
res
)
}
//启动推送事件监听
uni
.
onPushMessage
(
eventName
);
//关闭推送事件监听
uni
.
offPushMessage
(
eventName
);
```
#### Tips
-
如果uni.offPushMessage没有传入参数,则移除App级别的所有事件监听器;
-
如果只提供了事件名(eventName),则移除该事件名对应的所有监听器;
### uni.createPushMessage(OBJECT)
创建本地通知栏消息(HBuilderX 3.5.2起支持)
**平台差异说明**
|App|H5 |快应用 |微信小程序 |支付宝小程序 |百度小程序 |字节跳动小程序、飞书小程序 |QQ小程序 |快手小程序 |京东小程序 |
|:-:|:-:|:-: |:-: |:-: |:-: |:-: |:-: |:-: |:-: |
|√ |x |x |x |x |x |x |x |x |x |
**OBJECT 参数说明**
|参数名 |类型 |必填 |说明 |
|:- |:- |:- |:- |
|title |string |否 |推送消息的标题,在系统消息中心显示的通知消息标题,默认值为程序的名称。
</br>
Android - ALL (支持)
</br>
iOS - 5.0+ (不支持): 不支持设置消息的标题,固定为程序的名称。 |
|content |string |是 |消息显示的内容,在系统通知中心中显示的文本内容。 |
|payload |string、Object |否 |消息承载的数据,可根据业务逻辑自定义数据格式。 |
|icon |string |否 |推送消息的图标
</br>
本地图片地址,相对路径 - 相对于当前页面的host位置,如"a.jpg",注意当前页面为网络地址则不支持; 绝对路径 - 系统绝对路径,如Android平台"/sdcard/logo.png",此类路径通常通过其它5+ API获取的; 扩展相对路径URL(RelativeURL) - 以"_"开头的相对路径,如"_www/a.jpg"; 本地路径URL - 以“file://”开头,后面跟随系统绝对路径。
</br>
Android - 2.3+ (支持)
</br>
iOS - ALL (不支持): 不支持自定义图片,固定使用应用图标。 |
|sound |string |否 |'system' 'none'推送消息的提示音
</br>
显示消息时的播放的提示音,可取值: “system”-表示使用系统通知提示音; “none”-表示不使用提示音; 默认值为“system”。
</br>
Android - 2.3+ (支持)
</br>
iOS - 5.1+ (支持): 当程序在前台运行时,提示音不生效。 注:通常应该设置延迟时间,当程序切换到后台才创建本地推送消息时生效。 |
|cover |boolean |否 |是否覆盖上一次提示的消息
</br>
可取值true或false,true为覆盖,false不覆盖,默认为permission中设置的cover值
</br>
Android - ALL (支持)
</br>
iOS - 5.0+ (不支持): 不支持覆盖消息,只能创建新的消息。 |
|delay |number |否 |提示消息延迟显示的时间
</br>
当设备接收到推送消息后,可不立即显示,而是延迟一段时间显示,延迟时间单位为s,默认为0s,立即显示。 |
|when |Date |否 |消息上显示的提示时间
</br>
默认为当前时间,如果延迟显示则使用延时后显示消息的时间。
</br>
Android - ALL (支持)
</br>
iOS - 5.0+ (不支持): 不支持设定消息的显示时间,由系统自动管理消息的创建时间。 |
|success |Function |否 |接口调用成功的回调函数 |
|fail |Function |否 |接口调用失败的回调函数 |
|complete |Function |否 |接口调用结束的回调函数(调用成功、失败都会执行)
### App平台
`uni-app`
提供了 uni push 服务,这是一个包括客户端和服务器的统一服务,整合了苹果APNs、华为、小米、OPPO、VIVO、魅族、谷歌FCM等多家厂商的系统推送和个推的独立推送,不管客户端还是服务器,一套代码多端推送。
开发者可以在uniPush中只接入个推,不配置其他厂商服务,但这将导致很多Android手机上App离线后无法推送消息。因为现在的国产rom节电管理策略严格,不使用原厂的push基本难以离线送达消息。
若想提供消息推送成功率,只有使用uniPush,并向各rom厂商申请开通推送服务(免费)。
因本文档内容有限,另行开贴,介绍业务、开通流程,请务必仔细阅读
[
https://ask.dcloud.net.cn/article/35622
](
https://ask.dcloud.net.cn/article/35622
)
。
-
客户端调用的js API见:
[
https://www.html5plus.org/doc/zh_cn/push.html
](
https://www.html5plus.org/doc/zh_cn/push.html
)
-
web自助发送界面:在DCloud的开发者后台:
[
https://dev.dcloud.net.cn/
](
https://dev.dcloud.net.cn/
)
,选择应用后点击uniPush栏目。
-
编写代码调用服务器接口发送push消息:
*
如果使用uniCloud开发服务器,可以使用封装好的插件,更简单易用:
[
https://ext.dcloud.net.cn/plugin?id=1680
](
https://ext.dcloud.net.cn/plugin?id=1680
)
*
如果使用传统服务器开发,文档仍然是个推的服务器文档
[
http://docs.getui.com/
](
http://docs.getui.com/
)
。
**其他相关资源**
-
检查应用是否被授予推送权限:
[
https://ext.dcloud.net.cn/plugin?id=594
](
https://ext.dcloud.net.cn/plugin?id=594
)
-
开启关闭推送服务:
[
https://ext.dcloud.net.cn/plugin?id=727
](
https://ext.dcloud.net.cn/plugin?id=727
)
-
自定义
iOS推送铃声:
[
https://ext.dcloud.net.cn/plugin?id=690
](
https://ext.dcloud.net.cn/plugin?id=690
)
-
自定义
App推送铃声:
[
https://ext.dcloud.net.cn/plugin?id=7482
](
https://ext.dcloud.net.cn/plugin?id=7482
)
-
如何自定义推送通知的图标:
[
https://ask.dcloud.net.cn/article/35537
](
https://ask.dcloud.net.cn/article/35537
)
插件市场也提供了其他三方推送方案,但注意unipush是推送成功率更高的解决方案,并且免费使用。不推荐开发者使用其他推送服务。
但我们发现很多开发者有误解,导致还在错误使用其他推送。
-
常见误解1:“uniPush的专业性,和专业的个推、极光等服务可相比吗?”
答:uniPush是由个推将其本来收费的vip push产品,免费提供给了DCloud的开发者。它与个推vip push的只有2个区别:1、免费;2、账户使用的是DCloud开发者账户,而无需再重新注册个推账户。个推是A股上市公司,专业性在推送领域领先。
-
常见误解2:“uniPush好麻烦,我就喜欢个推、极光这种简单sdk,不想去各个rom厂商去申请一圈”
答:uniPush不建立在申请手机厂商授权的基础上,如果你不申请那些,使用起来和用普通的个推是一样的。但是要特别注意,推送行业的现状就是:
**不集成rom厂商的推送,就无法在App离线时发送push。**
。按照普通个推模式使用,后果就是在华为、小米、OPPO、VIVO、魅族上发不了离线消息。
-
常见误解3:“uniPush的送达率还是不够,是否可以付费来提升送达率,个推是有付费提升送达率的方法的”
答:前文已经说了。个推的付费提升送达率的产品就是vip push,而uniPush就是个推的vip Push。DCloud通过谈判免费给DCloud的开发者使用了。
-
常见误解4:开通uniPush要实名认证,还得传身份证,开通普通个推不用这么麻烦。
答:此问题之前曾存在,后来已经处理,保持和个推需要的身份信息相同,不再需要身份证。
### 小程序平台
小程序平台的类似概念叫做
`模板消息`
,也有的平台改名为
`订阅消息`
。
...
...
@@ -51,144 +129,6 @@
QQ小程序订阅消息文档:
[
https://q.qq.com/wiki/develop/miniprogram/frame/open_ability/open_message.html#%E8%AE%A2%E9%98%85%E6%B6%88%E6%81%AF
](
https://q.qq.com/wiki/develop/miniprogram/frame/open_ability/open_message.html#%E8%AE%A2%E9%98%85%E6%B6%88%E6%81%AF
)
华为快应用推送文档:
[
https://developer.huawei.com/consumer/cn/doc/development/quickApp-References/webview-api-hwpush
](
https://developer.huawei.com/consumer/cn/doc/development/quickApp-References/webview-api-hwpush
)
<!--
**注意:以下API暂停维护,仅为向下兼容而保留。App端 uni push 的API请使用 [https://www.html5plus.org/doc/zh_cn/push.html](https://www.html5plus.org/doc/zh_cn/push.html)**
### uni.subscribePush(OBJECT)
开启推送
平台差异说明:
-
App
**OBJECT 参数说明**
|参数名|类型|必填|说明|
|:-|:-|:-|:-|
|provider|String|是|分享推送提供商,通过
[
uni.getProvider
](
/api/plugins/provider
)
获取|
|success|Function|否|接口调用成功的回调|
|fail|Function|否|接口调用失败的回调函数|
|complete|Function|否|接口调用结束的回调函数(调用成功、失败都会执行)|
**示例**
```
javascript
uni
.
getProvider
({
service
:
'
push
'
,
success
:
function
(
res
)
{
console
.
log
(
res
.
provider
)
// 个推的名称为 igexin
if
(
~
res
.
provider
.
indexOf
(
'
igexin
'
))
{
uni
.
subscribePush
({
provider
:
'
igexin
'
,
success
:
function
(
res
)
{
console
.
log
(
'
success:
'
+
JSON
.
stringify
(
res
));
}
});
}
}
});
```
### uni.unsubscribePush(OBJECT)
关闭推送。
**平台差异说明**
-
App
**OBJECT 参数说明**
|参数名|类型|必填|说明|
|:-|:-|:-|:-|
|provider|String|是|分享推送提供商,通过 uni.getProvider 获取|
|success|Function|否|接口调用成功的回调|
|fail|Function|否|接口调用失败的回调函数|
|complete|Function|否|接口调用结束的回调函数(调用成功、失败都会执行)|
**示例**
```
javascript
uni
.
unsubscribePush
({
provider
:
'
igexin
'
,
success
:
function
(
res
)
{
console
.
log
(
'
success:
'
+
JSON
.
stringify
(
res
));
}
});
```
### uni.onPush(OBJECT)
监听透传数据。
**平台差异说明**
-
App
**OBJECT 参数说明**
|参数名|类型|必填|说明|
|:-|:-|:-|:-|
|provider|String|是|分享推送提供商,通过 uni.getProvider 获取|
|callback|Function|否|接收到透传数据回调,回调参数(Object):messageId(消息id)、data(消息内容)|
|success|Function|否|接口调用成功的回调|
|fail|Function|否|接口调用失败的回调函数|
|complete|Function|否|接口调用结束的回调函数(调用成功、失败都会执行)|
**示例**
```
javascript
uni
.
onPush
({
provider
:
'
igexin
'
,
success
:
function
()
{
console
.
log
(
'
监听透传成功
'
);
},
callback
:
function
(
data
)
{
console
.
log
(
"
接收到透传数据:
"
+
JSON
.
stringify
(
data
));
}
});
```
### uni.offPush(OBJECT)
移除监听透传数据。
**平台差异说明**
-
App
**OBJECT 参数说明**
|参数名|类型|必填|说明|
|:-|:-|:-|:-|
|provider|String|是|分享推送提供商,通过uni.getProvider获取|
|success|Function|否|接口调用成功的回调|
|fail|Function|否|接口调用失败的回调函数|
|complete|Function|否|接口调用结束的回调函数(调用成功、失败都会执行)|
**示例**
```
javascript
uni
.
offPush
({
provider
:
'
igexin
'
,
success
:
function
()
{
console
.
log
(
'
取消监听透传成功
'
);
},
fail
:
function
()
{
console
.
log
(
'
fail
'
);
}
});
```
-->
##### FAQ
Q:为什么真机测试推送可以用,打包后就失败呢?
A:HBuilder 真机运行环境下,第三方支付 SDK 的配置信息是 HBuilder 这个应用。这个配置信息是不能动态修改的,因此涉及到第三方 SDK 的配置,需要打包自定义基座进行测试。
[
真机运行自定义基座包使用说明
](
http://ask.dcloud.net.cn/article/12723
)
Q:用到了推送功能,在打包原生应用时,需要注意什么呢?
A:如果是云打包,首先勾选权限配置,manifest.json->App 模块权限配置->Push。然后,manifest.json->App SDK 配置->推送,按照提示申请相应平台的信息,并填写。最后,勾选并填写完成后再进行打包即可。如果是离线打包,自行在原生工程中配置SDK,并确保选择了推送模块。
华为快应用推送文档:
[
https://developer.huawei.com/consumer/cn/doc/development/quickApp-References/webview-api-hwpush
](
https://developer.huawei.com/consumer/cn/doc/development/quickApp-References/webview-api-hwpush
)
## 服务端Api [详情参考](/uniCloud/uni-cloud-push/api)
\ No newline at end of file
docs/uniCloud/_sidebar.md
浏览文件 @
013df950
...
...
@@ -53,6 +53,8 @@
*
Push扩展库(socket)
*
[
业务文档
](
/unipush-v2.md
)
*
[
开发文档
](
uniCloud/uni-cloud-push/api.md
)
*
[
服务端api
](
uniCloud/uni-cloud-push/api.md
)
*
[
客户端api
](
api/plugins/push.md
)
*
[
uni-push2.0、uni-id、uni统计的组合
](
uniCloud/uni-cloud-push/mate.md
)
*
[
扩展参数
](
uniCloud/uni-cloud-push/options.md
)
*
[
运行与调试
](
uniCloud/rundebug.md
)
...
...
docs/uniCloud/uni-cloud-push/api.md
浏览文件 @
013df950
...
...
@@ -10,109 +10,7 @@
`uni-push`
有服务器API和客户端API。
## 客户端API
### uni.getPushClientId(OBJECT)
获取客户端唯一的推送标识
注意:这是一个异步的方法,且仅支持uni-push2.0
**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\":\"\"}`
请检查:
1.
当前应用是否已开通uni-push2.0
[
详情参考
](
https://uniapp.dcloud.io/unipush-v2.html#%E7%AC%AC%E4%B8%80%E6%AD%A5-%E5%BC%80%E9%80%9A
)
2.
客户端对应平台是否已启用uni-push2.0
[
详情参考
](
https://uniapp.dcloud.io/unipush-v2.html#%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%90%AF%E7%94%A8unipush2-0
)
示例代码:
```
js
uni
.
getPushClientId
({
success
:
(
res
)
=>
{
console
.
log
(
res
.
cid
);
},
fail
(
err
)
{
console
.
log
(
err
)
}
})
```
### uni.onPushMessage([callback,eventName])
启动监听推送消息事件
代码示例:
```
js
uni
.
onPushMessage
((
res
)
=>
{
console
.
log
(
res
)
})
```
#### 回调参数说明
|名称 |类型 |描述 |
|-- |-- |-- |
|type |String | 事件类型,"click"-从系统推送服务点击消息启动应用事件;"receive"-应用从推送服务器接收到推送消息事件。|
|data |String、Object|消息内容|
### uni.offPushMessage([eventName])
关闭推送消息监听事件
示例代码:
```
js
let
eventName
=
(
res
)
=>
{
console
.
log
(
res
)
}
//启动推送事件监听
uni
.
onPushMessage
(
eventName
);
//关闭推送事件监听
uni
.
offPushMessage
(
eventName
);
```
#### Tips
-
如果uni.offPushMessage没有传入参数,则移除App级别的所有事件监听器;
-
如果只提供了事件名(eventName),则移除该事件名对应的所有监听器;
### uni.createPushMessage(OBJECT)
创建本地通知栏消息(HBuilderX 3.5.2起支持)
**平台差异说明**
|App|H5 |快应用 |微信小程序 |支付宝小程序 |百度小程序 |字节跳动小程序、飞书小程序 |QQ小程序 |快手小程序 |京东小程序 |
|:-:|:-:|:-: |:-: |:-: |:-: |:-: |:-: |:-: |:-: |
|√ |x |x |x |x |x |x |x |x |x |
**OBJECT 参数说明**
|参数名 |类型 |必填 |说明 |
|:- |:- |:- |:- |
|title |string |否 |推送消息的标题,在系统消息中心显示的通知消息标题,默认值为程序的名称。
</br>
Android - ALL (支持)
</br>
iOS - 5.0+ (不支持): 不支持设置消息的标题,固定为程序的名称。 |
|content |string |是 |消息显示的内容,在系统通知中心中显示的文本内容。 |
|payload |string、Object |否 |消息承载的数据,可根据业务逻辑自定义数据格式。 |
|icon |string |否 |推送消息的图标
</br>
本地图片地址,相对路径 - 相对于当前页面的host位置,如"a.jpg",注意当前页面为网络地址则不支持; 绝对路径 - 系统绝对路径,如Android平台"/sdcard/logo.png",此类路径通常通过其它5+ API获取的; 扩展相对路径URL(RelativeURL) - 以"_"开头的相对路径,如"_www/a.jpg"; 本地路径URL - 以“file://”开头,后面跟随系统绝对路径。
</br>
Android - 2.3+ (支持)
</br>
iOS - ALL (不支持): 不支持自定义图片,固定使用应用图标。 |
|sound |string |否 |'system' 'none'推送消息的提示音
</br>
显示消息时的播放的提示音,可取值: “system”-表示使用系统通知提示音; “none”-表示不使用提示音; 默认值为“system”。
</br>
Android - 2.3+ (支持)
</br>
iOS - 5.1+ (支持): 当程序在前台运行时,提示音不生效。 注:通常应该设置延迟时间,当程序切换到后台才创建本地推送消息时生效。 |
|cover |boolean |否 |是否覆盖上一次提示的消息
</br>
可取值true或false,true为覆盖,false不覆盖,默认为permission中设置的cover值
</br>
Android - ALL (支持)
</br>
iOS - 5.0+ (不支持): 不支持覆盖消息,只能创建新的消息。 |
|delay |number |否 |提示消息延迟显示的时间
</br>
当设备接收到推送消息后,可不立即显示,而是延迟一段时间显示,延迟时间单位为s,默认为0s,立即显示。 |
|when |Date |否 |消息上显示的提示时间
</br>
默认为当前时间,如果延迟显示则使用延时后显示消息的时间。
</br>
Android - ALL (支持)
</br>
iOS - 5.0+ (不支持): 不支持设定消息的显示时间,由系统自动管理消息的创建时间。 |
|success |Function |否 |接口调用成功的回调函数 |
|fail |Function |否 |接口调用失败的回调函数 |
|complete |Function |否 |接口调用结束的回调函数(调用成功、失败都会执行) |
## 客户端API [详情参考](/api/plugins/push)
## 服务端Api @uni-cloud-push
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录