diff --git a/docs/_sidebar.md b/docs/_sidebar.md index fa765e51636c2d5eb7b25111d2626869325cc769..4212315d321ca6ea033ec85a4f7bc32b5f11c49f 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -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) diff --git a/docs/api/plugins/push.md b/docs/api/plugins/push.md index 741cf9174d9a327bbb44bd8e9b13ac11613d2ca5..11d3780093b0c11db5572060a62a1cfbcd3f8b70 100644 --- a/docs/api/plugins/push.md +++ b/docs/api/plugins/push.md @@ -1,38 +1,116 @@ -`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 |否 |推送消息的标题,在系统消息中心显示的通知消息标题,默认值为程序的名称。
Android - ALL (支持)
iOS - 5.0+ (不支持): 不支持设置消息的标题,固定为程序的名称。 | +|content |string |是 |消息显示的内容,在系统通知中心中显示的文本内容。 | +|payload |string、Object |否 |消息承载的数据,可根据业务逻辑自定义数据格式。 | +|icon |string |否 |推送消息的图标
本地图片地址,相对路径 - 相对于当前页面的host位置,如"a.jpg",注意当前页面为网络地址则不支持; 绝对路径 - 系统绝对路径,如Android平台"/sdcard/logo.png",此类路径通常通过其它5+ API获取的; 扩展相对路径URL(RelativeURL) - 以"_"开头的相对路径,如"_www/a.jpg"; 本地路径URL - 以“file://”开头,后面跟随系统绝对路径。
Android - 2.3+ (支持)
iOS - ALL (不支持): 不支持自定义图片,固定使用应用图标。 | +|sound |string |否 |'system' 'none'推送消息的提示音
显示消息时的播放的提示音,可取值: “system”-表示使用系统通知提示音; “none”-表示不使用提示音; 默认值为“system”。
Android - 2.3+ (支持)
iOS - 5.1+ (支持): 当程序在前台运行时,提示音不生效。 注:通常应该设置延迟时间,当程序切换到后台才创建本地推送消息时生效。 | +|cover |boolean |否 |是否覆盖上一次提示的消息
可取值true或false,true为覆盖,false不覆盖,默认为permission中设置的cover值
Android - ALL (支持)
iOS - 5.0+ (不支持): 不支持覆盖消息,只能创建新的消息。 | +|delay |number |否 |提示消息延迟显示的时间
当设备接收到推送消息后,可不立即显示,而是延迟一段时间显示,延迟时间单位为s,默认为0s,立即显示。 | +|when |Date |否 |消息上显示的提示时间
默认为当前时间,如果延迟显示则使用延时后显示消息的时间。
Android - ALL (支持)
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) - - - -##### 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 diff --git a/docs/uniCloud/_sidebar.md b/docs/uniCloud/_sidebar.md index b6b749829d8775f6e6c12395d825823fb0fef3bc..03b97cfa369e802aacdc5e87cd6568f2b3df4857 100644 --- a/docs/uniCloud/_sidebar.md +++ b/docs/uniCloud/_sidebar.md @@ -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) diff --git a/docs/uniCloud/uni-cloud-push/api.md b/docs/uniCloud/uni-cloud-push/api.md index f4f846a8818f9dbfaa533cb2d76f2b38d9bc0879..3099be3576f83234d38368ced6a12a08b7442b21 100644 --- a/docs/uniCloud/uni-cloud-push/api.md +++ b/docs/uniCloud/uni-cloud-push/api.md @@ -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 |否 |推送消息的标题,在系统消息中心显示的通知消息标题,默认值为程序的名称。
Android - ALL (支持)
iOS - 5.0+ (不支持): 不支持设置消息的标题,固定为程序的名称。 | -|content |string |是 |消息显示的内容,在系统通知中心中显示的文本内容。 | -|payload |string、Object |否 |消息承载的数据,可根据业务逻辑自定义数据格式。 | -|icon |string |否 |推送消息的图标
本地图片地址,相对路径 - 相对于当前页面的host位置,如"a.jpg",注意当前页面为网络地址则不支持; 绝对路径 - 系统绝对路径,如Android平台"/sdcard/logo.png",此类路径通常通过其它5+ API获取的; 扩展相对路径URL(RelativeURL) - 以"_"开头的相对路径,如"_www/a.jpg"; 本地路径URL - 以“file://”开头,后面跟随系统绝对路径。
Android - 2.3+ (支持)
iOS - ALL (不支持): 不支持自定义图片,固定使用应用图标。 | -|sound |string |否 |'system' 'none'推送消息的提示音
显示消息时的播放的提示音,可取值: “system”-表示使用系统通知提示音; “none”-表示不使用提示音; 默认值为“system”。
Android - 2.3+ (支持)
iOS - 5.1+ (支持): 当程序在前台运行时,提示音不生效。 注:通常应该设置延迟时间,当程序切换到后台才创建本地推送消息时生效。 | -|cover |boolean |否 |是否覆盖上一次提示的消息
可取值true或false,true为覆盖,false不覆盖,默认为permission中设置的cover值
Android - ALL (支持)
iOS - 5.0+ (不支持): 不支持覆盖消息,只能创建新的消息。 | -|delay |number |否 |提示消息延迟显示的时间
当设备接收到推送消息后,可不立即显示,而是延迟一段时间显示,延迟时间单位为s,默认为0s,立即显示。 | -|when |Date |否 |消息上显示的提示时间
默认为当前时间,如果延迟显示则使用延时后显示消息的时间。
Android - ALL (支持)
iOS - 5.0+ (不支持): 不支持设定消息的显示时间,由系统自动管理消息的创建时间。 | -|success |Function |否 |接口调用成功的回调函数 | -|fail |Function |否 |接口调用失败的回调函数 | -|complete |Function |否 |接口调用结束的回调函数(调用成功、失败都会执行) | - - +## 客户端API [详情参考](/api/plugins/push) ## 服务端Api @uni-cloud-push