acmPush

来自于:开发者立即使用

onAppStart getDeviceId turnOnPushChannel turnOffPushChannel checkPushChannelStatus bindAccount unbindAccount bindTag unbindTag listTags addAlias removeAlias setNotificationSound setNotificationLargeIcon setDoNotDisturb closeDoNotDisturbMode clearNotifications bindPhoneNumber unbindPhoneNumber addMessageListener removeMessageListener syncBadgeNum

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码供您参考。

概述

阿里移动推送(Alibaba Cloud Mobile Push)是基于大数据的移动智能推送服务,帮助App快速集成移动推送的功能,在实现高效、精确、实时的移动推送的同时,极大地降低了开发成本。让开发者最有效地与用户保持连接,从而提高用户活跃度、提高应用的留存率。

使用此模块之前需先配置 config.xml 文件,方法如下

  • 配置示例:
  1. <feature name="acmPush">
  2. <param name="androidAppKey" value="25662805"/>
  3. <param name="androidAppSecret" value="84dda7456c877d7594cf9247aee117e9"/>
  4. <param name="androidChannelId" value="11"/>
  5. <param name="androidChannel" value="appchannel"/>
  6. <param name="androidChannelDes" value="notification description"/>
  7. <param name="androidChannelLight" value="0"/>
  8. <param name="androidChannelVibration" value="0"/>
  9. <param name="iOSAppKey" value="25662805"/>
  10. <param name="iOSAppSecret" value="84dda7456c877d7594cf9247aee117e9"/>
  11. </feature>
  • 字段描述:

    androidAppKey:阿里移动推送平台的安卓 AppKey。 在阿里云EMAS控制台获取EMAS控制台

    androidAppSecret:阿里移动推送平台的安卓 AppSecret。 在阿里云EMAS控制台获取EMAS控制台

    androidChannelId:安卓8.0推送渠道配置,渠道id。后天通过此渠道id推送

    androidChannel:安卓8.0推送渠道配置,渠道名称。

    androidChannelDes:安卓8.0推送渠道配置,渠道描述。

    androidChannelLight:安卓8.0推送渠道配置,通知出现时是否闪灯,0/不闪 1/闪灯。

    androidChannelVibration:安卓8.0推送渠道配置,通知出现时是否震动,0/不震动 1/震动。

    iOSAppKey:阿里移动推送平台的iOS AppKey。 在阿里云EMAS控制台获取EMAS控制台

    iOSAppSecret:阿里移动推送平台的iOS AppSecret。 在阿里云EMAS控制台获取EMAS控制台

模块接口

onAppStart

统计App启动信息。

onAppStart({params}, callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true //布尔类型;true/false 是否成功
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. msg:'', //字符串类型;错误信息
  3. }

示例代码

  1. var acmPush = api.require('acmPush');
  2. acmPush.onAppStart({
  3. }, function(ret, err) {
  4. alert(JSON.stringify(ret));
  5. });

可用性

Android系统

可提供的1.0.0及更高版本

getDeviceId

获取设备唯一标识。

getDeviceId({params}, callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;true/false 是否成功
  3. deviceId:'' //字符串类型;设备唯一标识
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. msg:'', //字符串类型;错误信息
  3. }

示例代码

  1. var acmPush = api.require('acmPush');
  2. acmPush.getDeviceId({
  3. }, function(ret, err) {
  4. alert(JSON.stringify(ret));
  5. });

可用性

Android系统,iOS系统

可提供的1.0.0及更高版本

turnOnPushChannel

打开推送通道。

turnOnPushChannel({params}, callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;true/false 是否成功
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. errorCode:'', //字符串类型;错误码
  3. errorMsg:'', //字符串类型;错误信息
  4. }

示例代码

  1. var acmPush = api.require('acmPush');
  2. acmPush.turnOnPushChannel({
  3. }, function(ret, err) {
  4. alert(JSON.stringify(ret));
  5. });

可用性

Android系统

可提供的1.0.0及更高版本

turnOffPushChannel

关闭推送通道。

turnOffPushChannel({params}, callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;true/false 是否成功
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. errorCode:'', //字符串类型;错误码
  3. errorMsg:'', //字符串类型;错误信息
  4. }

示例代码

  1. var acmPush = api.require('acmPush');
  2. acmPush.turnOffPushChannel({
  3. }, function(ret, err) {
  4. alert(JSON.stringify(ret));
  5. });

可用性

Android系统

可提供的1.0.0及更高版本

checkPushChannelStatus

查询通道状态。

checkPushChannelStatus({params}, callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;true/false 是否打开
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. errorCode:'', //字符串类型;错误码
  3. errorMsg:'', //字符串类型;错误信息
  4. }

示例代码

  1. var acmPush = api.require('acmPush');
  2. acmPush.checkPushChannelStatus({
  3. }, function(ret, err) {
  4. alert(JSON.stringify(ret));
  5. });

可用性

Android系统,iOS系统

可提供的1.0.0及更高版本

bindAccount

通道与账号绑定。

bindAccount({params}, callback(ret))

parameter

account

  • 类型:字符串类型
  • 描述:要绑定的账号

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;true/false 是否打开
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. errorCode:'', //字符串类型;错误码
  3. errorMsg:'', //字符串类型;错误信息
  4. }

示例代码

  1. var acmPush = api.require('acmPush');
  2. acmPush.bindAccount({
  3. account:'',
  4. }, function(ret, err) {
  5. alert(JSON.stringify(ret));
  6. });

可用性

Android系统,iOS系统

可提供的1.0.0及更高版本

unbindAccount

通道与账号取消绑定。

unbindAccount({params}, callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;true/false 是否打开
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. errorCode:'', //字符串类型;错误码
  3. errorMsg:'', //字符串类型;错误信息
  4. }

示例代码

  1. var acmPush = api.require('acmPush');
  2. acmPush.unbindAccount({
  3. }, function(ret, err) {
  4. alert(JSON.stringify(ret));
  5. });

可用性

Android系统,iOS系统

可提供的1.0.0及更高版本

bindTag

绑定标签。

bindTag({params}, callback(ret))

parameter

target

  • 类型:数字类型
  • 描述:(可选项)目标类型,1:本设备; 2:本设备绑定账号; 3:别名
  • 取值范围:1:本设备; 2:本设备绑定账号; 3:别名
  • 默认值:1

tags

  • 类型:Json数组
  • 描述:标签

alias

  • 类型:字符串类型;
  • 描述:别名;仅当target为3时有效

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;true/false 是否打开
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. errorCode:'', //字符串类型;错误码
  3. errorMsg:'', //字符串类型;错误信息
  4. }

示例代码

  1. var acmPush = api.require('acmPush');
  2. acmPush.bindTag({
  3. target:1,
  4. tags:{'',''},
  5. }, function(ret, err) {
  6. alert(JSON.stringify(ret));
  7. });

可用性

Android系统,iOS系统

可提供的1.0.0及更高版本

unbindTag

取消绑定标签。

unbindTag({params}, callback(ret))

parameter

target

  • 类型:数字类型
  • 描述:(可选项)目标类型,1:本设备; 2:本设备绑定账号; 3:别名
  • 取值范围:1:本设备; 2:本设备绑定账号; 3:别名
  • 默认值:1

tags

  • 类型:Json数组
  • 描述:标签

alias

  • 类型:字符串类型;
  • 描述:别名;仅当target为3时有效

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;true/false 是否成功
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. errorCode:'', //字符串类型;错误码
  3. errorMsg:'', //字符串类型;错误信息
  4. }

示例代码

  1. var acmPush = api.require('acmPush');
  2. acmPush.unbindTag({
  3. target:1,
  4. tags:{'',''},
  5. }, function(ret, err) {
  6. alert(JSON.stringify(ret));
  7. });

可用性

Android系统,iOS系统

可提供的1.0.0及更高版本

listTags

本设备标签查询。

listTags({params}, callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;true/false 是否成功
  3. tags:'', //字符串类型;该设备绑定的标签
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. errorCode:'', //字符串类型;错误码
  3. errorMsg:'', //字符串类型;错误信息
  4. }

示例代码

  1. var acmPush = api.require('acmPush');
  2. acmPush.listTags({
  3. }, function(ret, err) {
  4. alert(JSON.stringify(ret));
  5. });

可用性

Android系统,iOS系统

可提供的1.0.0及更高版本

addAlias

设备添加别名。

addAlias({params}, callback(ret))

parameter

alias

  • 类型:字符串类型
  • 描述:别名

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;true/false 是否成功
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. errorCode:'', //字符串类型;错误码
  3. errorMsg:'', //字符串类型;错误信息
  4. }

示例代码

  1. var acmPush = api.require('acmPush');
  2. acmPush.addAlias({
  3. alias:'',
  4. }, function(ret, err) {
  5. alert(JSON.stringify(ret));
  6. });

可用性

Android系统,iOS系统

可提供的1.0.0及更高版本

removeAlias

设备移除别名。

removeAlias({params}, callback(ret))

parameter

alias

  • 类型:字符串类型
  • 描述:别名

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;true/false 是否成功
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. errorCode:'', //字符串类型;错误码
  3. errorMsg:'', //字符串类型;错误信息
  4. }

示例代码

  1. var acmPush = api.require('acmPush');
  2. acmPush.removeAlias({
  3. alias:'',
  4. }, function(ret, err) {
  5. alert(JSON.stringify(ret));
  6. });

可用性

Android系统,iOS系统

可提供的1.0.0及更高版本

setNotificationSound

设置通知声音。

setNotificationSound({params}, callback(ret))

parameter

soundPath

  • 类型:字符串类型
  • 描述:声音文件路径;支持widget,fs路径

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;true/false 是否成功
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. msg:'', //字符串类型;信息
  3. }

示例代码

  1. var acmPush = api.require('acmPush');
  2. acmPush.setNotificationSound({
  3. soundPath:'',
  4. }, function(ret, err) {
  5. alert(JSON.stringify(ret));
  6. });

可用性

Android系统,iOS系统

可提供的1.0.0及更高版本

setNotificationLargeIcon

设置通知栏图标。

setNotificationLargeIcon({params}, callback(ret))

parameter

iconPath

  • 类型:字符串类型
  • 描述:图片路径;支持widget,fs路径

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;true/false 是否成功
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. msg:'', //字符串类型;信息
  3. }

示例代码

  1. var acmPush = api.require('acmPush');
  2. acmPush.setNotificationLargeIcon({
  3. iconPath:'',
  4. }, function(ret, err) {
  5. alert(JSON.stringify(ret));
  6. });

可用性

Android系统

可提供的1.0.0及更高版本

setDoNotDisturb

设置免打扰时段。

setDoNotDisturb({params}, callback(ret))

parameter

startHour

  • 类型:数字类型
  • 描述:免打扰开始时间(小时)
  • 取值范围:0-23

startMinute

  • 类型:数字类型
  • 描述:免打扰开始时间(分钟)
  • 取值范围:0-59

endHour

  • 类型:数字类型
  • 描述:免打扰结束时间(小时)
  • 取值范围:0-23

endMinute

  • 类型:数字类型
  • 描述:免打扰结束时间(分钟)
  • 取值范围:0-59

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;true/false 是否成功
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. errorCode:'', //字符串类型;错误码
  3. errorMsg:'', //字符串类型;错误信息
  4. }

示例代码

  1. var acmPush = api.require('acmPush');
  2. acmPush.setDoNotDisturb({
  3. startHour:,
  4. startMinute:,
  5. endHour:,
  6. endMinute:.
  7. }, function(ret, err) {
  8. alert(JSON.stringify(ret));
  9. });

可用性

Android系统

可提供的1.0.0及更高版本

closeDoNotDisturbMode

关闭免打扰。

closeDoNotDisturbMode({params}, callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;true/false 是否成功
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. errorCode:'', //字符串类型;错误码
  3. errorMsg:'', //字符串类型;错误信息
  4. }

示例代码

  1. var acmPush = api.require('acmPush');
  2. acmPush.closeDoNotDisturbMode({
  3. }, function(ret, err) {
  4. alert(JSON.stringify(ret));
  5. });

可用性

Android系统

可提供的1.0.0及更高版本

clearNotifications

删除所有通知。

clearNotifications({params}, callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;true/false 是否成功
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. errorCode:'', //字符串类型;错误码
  3. errorMsg:'', //字符串类型;错误信息
  4. }

示例代码

  1. var acmPush = api.require('acmPush');
  2. acmPush.clearNotifications({
  3. }, function(ret, err) {
  4. alert(JSON.stringify(ret));
  5. });

可用性

Android系统

可提供的1.0.0及更高版本

bindPhoneNumber

绑定电话号。开发者可以设置在一定时间内,如果用户未收到或未点击推送,通过短信补发通知用户。具体方案可参考:推送短信融合。 为实现推送短信融合方案,需要绑定电话号码

bindPhoneNumber({params}, callback(ret))

parameter

phoneNumber

  • 类型:字符串类型
  • 描述:电话号码

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;true/false 是否成功
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. errorCode:'', //字符串类型;错误码
  3. errorMsg:'', //字符串类型;错误信息
  4. }

示例代码

  1. var acmPush = api.require('acmPush');
  2. acmPush.bindPhoneNumber({
  3. phoneNumber:'',
  4. }, function(ret, err) {
  5. alert(JSON.stringify(ret));
  6. });

可用性

Android系统

可提供的1.0.0及更高版本

unbindPhoneNumber

设备解绑电话号。

unbindPhoneNumber({params}, callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;true/false 是否成功
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. errorCode:'', //字符串类型;错误码
  3. errorMsg:'', //字符串类型;错误信息
  4. }

示例代码

  1. var acmPush = api.require('acmPush');
  2. acmPush.unbindPhoneNumber({
  3. }, function(ret, err) {
  4. alert(JSON.stringify(ret));
  5. });

可用性

Android系统

可提供的1.0.0及更高版本

addMessageListener

添加消息监听。

addMessageListener({params}, callback(ret))

parameter

listenerName

  • 类型:字符串类型
  • 描述;监听name,支持多个位置监听,可根据name移除某监听

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;true/false 是否成功
  3. type:, //回调类型;1/收到推送通知,2/应用在前台收到自定义通知,3/收到一条推送消息,4/有动作通知点击回调,5/通知删除,6/无动作通知点击回调,7/通道打开通知(仅支持iOS)
  4. removedNotificationId:'', //字符串类型;移除的通知id 仅type为5时返回
  5. notification:{ //JSON对象类型;通知内容对象,type为:1、2、4、6返回
  6. title:'', //字符串类型;标题
  7. summary:'', //字符串类型;概要
  8. extras:[{ //JSON数组类型;扩展字段
  9. name:'', //字符串类型;扩展内容key
  10. value:'', //字符串类型;扩展内容value
  11. },],
  12. openType:, //数字类型;动作type 1/打开APP,2/打开activity,3/打开URL,4/无跳转逻辑;仅type为4时有效
  13. activity:'', //字符串类型;需要打开的页面;仅type为4 openType为2时返回
  14. url:'', //字符串类型;需要打开的地址;仅type为4 openType为3时返回
  15. },
  16. message:{ //JSON对象类型;消息内容对象;仅type为3时返回
  17. messageId:'', //字符串类型;消息id,iOS不支持
  18. title:'', //字符串类型;消息title
  19. content:'', //字符串类型;消息内容
  20. },
  21. }

示例代码

  1. var acmPush = api.require('acmPush');
  2. acmPush.addMessageListener({
  3. listenerName:'name',
  4. }, function(ret, err) {
  5. alert(JSON.stringify(ret));
  6. });

可用性

Android系统,iOS系统

可提供的1.0.0及更高版本

removeMessageListener

移除消息监听。

removeMessageListener({params}, callback(ret))

parameter

listenerName

  • 类型:字符串类型
  • 描述;监听name,根据name移除某监听,addMessageListener接口中传入的listenerName

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;true/false 是否成功
  3. }

示例代码

  1. var acmPush = api.require('acmPush');
  2. acmPush.removeMessageListener({
  3. }, function(ret, err) {
  4. alert(JSON.stringify(ret));
  5. });

可用性

Android系统,iOS系统

可提供的1.0.0及更高版本

syncBadgeNum

同步角标数到服务端

syncBadgeNum({params}, callback(ret))

parameter

num

  • 类型:数字类型
  • 描述:角标数,取值范围[0,99999]
  • 默认:0

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;true/false 是否成功
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. errorCode:'', //字符串类型;错误码
  3. errorMsg:'', //字符串类型;错误信息
  4. }

示例代码

  1. var acmPush = api.require('acmPush');
  2. acmPush.syncBadgeNum({
  3. num:1,
  4. }, function(ret, err) {
  5. alert(JSON.stringify(ret));
  6. });

可用性

iOS系统

可提供的1.0.0及更高版本