aliyunPush

来自于:AC模块工作室立即使用

概述

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

注意:使用了aliyunPush或者其他非APICloud提供的push服务,如个推等,请登录官网,在推送设置界面将 APICloud 官方的推送关闭,避免因同时使用多个推送服务而带来设备资源的更多消耗,如耗电量增加等。

使用阿里云消息推送基本流程说明:

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

名称:aliyunPush 
参数:appKey, appSecret
描述:配置阿里云推送应用信息
   <feature name="aliyunPush">
        <param name="appKey" value="123456789" />
        <param name="appSecret" value="******" />
        <param name="channelId" value="1" />  
        <param name="channelName" value="name" />
        <param name="channelDescription" value="desc" />
    </feature>

字段描述:

    1. appKey:通过aliyun推送网站获得 (仅支持ios,android端配置参考下文)
    2. appSecret : Push推送业务的secret (仅支持ios,android端配置参考下文)
    3. channelId, channelName, channelDescription 需要Android端配置,否则可能在Android 8.0+系统上无法显示通知(Notification)

android需要在confix.xml中配置如下(当然也可以调用registerDynamic动态配置appKey & appsecre)

    <meta-data name="com.alibaba.app.appkey" value="*****"/> <!-- 请填写你自己的- appKey -->
    <meta-data name="com.alibaba.app.appsecret" value="****"/> <!-- 请填写你自己的appSecret -->

注意:

在使用推送之前需要到阿里云平台去创建应用

在 iOS 平台上使用此模块之前需要先生成相关证书:

 打包证书:需要上传到 APICloud 平台
 描述文件:需要上传到 APICloud 平台
 推送证书:需要上传到阿里云服务器

iOS 相关证书生成请参考 iOS证书及描述文件制作流程

1.创建APP 2.下载SDK 3.配置SDK 4.发布APP

onAppStart

启动信息统计

onAppStart(callback(ret))

示例代码

var aliyunPush = api.require('aliyunPush');
aliyunPush.onAppStart();

可用性

Android系统

可提供的1.0.0及更高版本

turnOnPushChannel

打开推送通道 全量推送场景下,打开推送通道存在2-3小时延迟。其他场景实时生效

turnOnPushChannel(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true              //布尔类型;是否注册成功
    msg:'',                  //字符串类型;status为false时的异常信息
    data:''                  //字符串类型;status为true时的提示信息
}

示例代码

var aliyunPush = api.require('aliyunPush');
aliyunPush.turnOnPushChannel();

可用性

Android系统

可提供的1.0.0及更高版本

turnOffPushChannel

关闭推送通道 全量推送场景下,关闭推送通道存在2-3小时延迟。其他场景实时生效

turnOffPushChannel(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true              //布尔类型;是否注册成功
    msg:'',                  //字符串类型;status为false时的异常信息
    data:''                  //字符串类型;status为true时的提示信息
}

示例代码

var aliyunPush = api.require('aliyunPush');
aliyunPush.turnOffPushChannel();

可用性

Android系统

可提供的1.0.0及更高版本

setNotificationSoundFilePath

设置通知声音

setNotificationSoundFilePath({params})

params

soundPath:

  • 类型:字符串
  • 描述:声音文件路径(仅支持fs:// & android系统本地路径)

示例代码

var aliyunPush = api.require('aliyunPush');
aliyunPush.setNotificationSoundFilePath({
    soundPath:'fs://notify.mp3'
});

可用性

Android系统

可提供的1.0.0及更高版本

setDoNotDisturb

设置通知声音

setDoNotDisturb({params},callback(ret))

params

startHour:

  • 类型:数字类型
  • 描述:免打扰的起始时间(小时)
  • 取值范围:[0, 23]

startMinute:

  • 类型:数字类型
  • 描述:免打扰的起始时间(分钟)
  • 取值范围:[0, 59]

endHour:

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

endMinute:

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

示例代码

var aliyunPush = api.require('aliyunPush');
aliyunPush.setDoNotDisturb({
    startHour:22,
    startMinute:0,
    endHour:23,
    endMinute:59
});

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true              //布尔类型;是否注册成功
    msg:'',                  //字符串类型;status为false时的异常信息
    data:''                  //字符串类型;status为true时的提示信息
}

可用性

Android系统

可提供的1.0.0及更高版本

clearNotifications

清空所有通知

clearNotifications()

示例代码

var aliyunPush = api.require('aliyunPush');
aliyunPush.clearNotifications();

可用性

Android系统

可提供的1.0.0及更高版本

closeDoNotDisturbMode

关闭免打扰模式

closeDoNotDisturbMode()

示例代码

var aliyunPush = api.require('aliyunPush');
aliyunPush.closeDoNotDisturbMode();

可用性

Android系统

可提供的1.0.0及更高版本

bindPhoneNumber

将设备与电话号绑定 为提高信息的到达率和实效性,扩展推送的使用场景,我们推出了推送与短信的融合通知模式。开发者可以设置在一定时间内,如果用户未收到或未点击推送,通过短信补发通知用户,具体方案可参考:推送短信融合

bindPhoneNumber()

params

phoneNumber:

  • 类型:字符串类型
  • 描述:要绑定的手机号码

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true              //布尔类型;是否注册成功
    msg:'',                  //字符串类型;status为false时的异常信息
    data:''                  //字符串类型;status为true时的提示信息
}

示例代码

var aliyunPush = api.require('aliyunPush');
aliyunPush.bindPhoneNumber({
    phoneNumber:'phone number'
});

可用性

Android系统

可提供的1.0.0及更高版本

unbindPhoneNumber

解除当前设备与电话号的绑定关系

unbindPhoneNumber()

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true              //布尔类型;是否注册成功
    msg:'',                  //字符串类型;status为false时的异常信息
    data:''                  //字符串类型;status为true时的提示信息
}

示例代码

var aliyunPush = api.require('aliyunPush');
aliyunPush.unbindPhoneNumber();

可用性

Android系统

可提供的1.0.0及更高版本

getDeviceId

获取设备ID

getDeviceId(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    deviceId:''              //字符串类型;设备ID
}

示例代码

var aliyunPush = api.require('aliyunPush');
aliyunPush.getDeviceId(function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

bindAccount

将应用内账号和推送通道相关联,可以实现按账号的定点消息推送;设备只能绑定一个账号,同一账号可以绑定到多个设备;同一设备更换绑定账号时无需进行解绑,重新调用绑定账号接口即可覆盖生效;若业务场景需要先解绑后绑定,在解绑账号成功回调中进行绑定绑定操作,以此保证执行的顺序性;账户名设置支持64字节。

bindAccount({params},callback(ret))

params

account:

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

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true/false,        //布尔类型;绑定成功/绑定失败
        msg:'',                 //字符串类型;表示调用命令失败的原因。
    data:''                 //字符串类型;成功时的提示信息        
}

示例代码

var aliyunPush = api.require('aliyunPush');
aliyunPush.bindAccount({
account:''
},function(ret) {
 alert(JSON.stringify(ret));
    });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

unbindAccount

将应用内账号和推送通道取消关联。

unbindAccount(callback(ret))

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true/false,        //布尔类型;绑定成功/绑定失败
        msg:'',                 //字符串类型;表示调用命令失败的原因。
    data:''                 //字符串类型;成功时的提示信息        
}

示例代码

var aliyunPush = api.require('aliyunPush');
aliyunPush.unbindAccount(function(ret) {
 alert(JSON.stringify(ret));
    });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

bindTag

绑定标签到指定目标;支持向设备、账号和别名绑定标签,绑定类型由参数target指定;绑定标签在10分钟内生效;App最多支持绑定1万个标签【请谨慎使用,避免标签绑定达到上限】,单个标签最大支持128字符。

bindTag({params}, callback(ret))

params

target:

  • 类型:数字
  • 描述:目标类型
  • 取值范围:
    • 1:本设备;
    • 2:本设备绑定账号;
    • 3:别名

tags:

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

alias:

  • 类型:字符串
  • 描述:别名(仅当target = 3时生效)

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true/false,        //布尔类型;绑定成功/绑定失败
        msg:'',                 //字符串类型;表示调用命令失败的原因。
    data:''                 //字符串类型;成功时的提示信息        
}

示例代码

var aliyunPush = api.require('aliyunPush');
aliyunPush.bindTag({
        alias: '******',
        tags:[],
        target:3,
    },
    function(ret) {
        alert(JSON.stringify(ret));
    }
);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

unbindTag

解绑指定目标标签;支持解绑设备、账号和别名标签,解绑类型由参数target指定;解绑标签在10分钟内生效;解绑标签不等同于删除标签,目前不支持标签的删除。

unbindTag({params}, callback(ret, err))

params

target:

  • 类型:数字
  • 描述:目标类型
  • 取值范围:
    • 1:本设备;
    • 2:本设备绑定账号;
    • 3:别名

tags:

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

alias:

  • 类型:字符串
  • 描述:别名(仅当target = 3时生效)

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true/false,        //布尔类型;绑定成功/绑定失败
        msg:'',                 //字符串类型;表示调用命令失败的原因。
    data:''                 //字符串类型;成功时的提示信息        
}

示例代码

var aliyunPush = api.require('aliyunPush');
aliyunPush.unbindTag({
        alias: '******',
        tags:[],
        target:3,
    },
    function(ret) {
        alert(JSON.stringify(ret));
    }
);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

listTags

查询目标绑定标签,当前仅支持查询设备标签;查询结果可从callback的data中获取;标签绑定成功且生效(10分钟内)后即可查询。

listTags(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true          //布尔类型;是否获取成功
    data:''              //字符串类型;获取成功后返回
    msg :                     //字符串类型;表示调用命令失败的原因。
}

示例代码

var aliyunPush = api.require('aliyunPush');
aliyunPush.listTags(function(ret) {
        alert(JSON.stringify(ret));
    });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addAlias

设备添加别名;单个设备最多添加128个别名,且同一别名最多添加到128个设备;别名支持128字节。 addAlias({params}, callback(ret))

params

alias:

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

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true          //布尔类型;是否设置成功
    msg :                     //字符串类型;表示调用命令失败的原因。
}

示例代码

var aliyunPush = api.require('aliyunPush');
aliyunPush.addAlias({
alias:''
},function(ret) {
        alert(JSON.stringify(ret));
    });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

removeAlias

删除设备别名;支持删除指定别名和删除全部别名(alias为nil or length = 0)。

removeAlias({params}, callback(ret, err))

params

alias:

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

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status  : true          //布尔类型;是否删除成功
    msg :                     //字符串类型;表示调用命令失败的原因。
}

示例代码

var aliyunPush = api.require('aliyunPush');
aliyunPush.removeAlias({
alias:''
},function(ret) {
        alert(JSON.stringify(ret));
    });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

listAliases

查询设备别名;查询结果可从callback的data中获取。

listAliases( callback(ret))

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

{
    status: true          //布尔类型;是否设置成功
    data:''             //字符串类型;设置成功会获取          
    msg :                     //字符串类型;表示调用命令失败的原因。
}

示例代码

var aliyunPush = api.require('aliyunPush');
aliyunPush.listAliases(
    function(ret) {
        alert(JSON.stringify(ret));
    }
);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

deviceToken

获取设备deviceToken

deviceToken(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
 deviceToken:''  //字符串类型;设备deviceToken
}

示例代码

var aliyunPush = api.require('aliyunPush');
aliyunPush.deviceToken(
    function(ret) {
        alert(JSON.stringify(ret));
    }
);

可用性

iOS系统

可提供的1.0.0及更高版本

syncBadgeNum

同步角标数到服务端

syncBadgeNum({params},callback(ret, err))

params

badgeNum:

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

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true  //布尔类型;是否设置成功
  data:''       //字符串类型;
  msg:''        //字符串类型;表示调用命令失败的原因。
}

示例代码

var aliyunPush = api.require('aliyunPush');
aliyunPush.syncBadgeNum({
badgeNum:3
},function(ret) {
    alert(JSON.stringify(ret));
   });

可用性

iOS 系统

可提供的1.0.0及更高版本

addEventlistener

监听消息或通知事件

addEventlistener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{

  eventType: 'notification'  //字符串类型;消息类型
  status: true,               // 布尔类型;sdk初始化是否成功,eventType为initState返回
  errorMsg:'',               // 字符串类型;sdk初始化失败原因,eventType为initState返回
  msg:{}                     //JSON类型;推送或通知

}

eventType:

  • 类型:字符串
  • 描述:消息类型
  • 取值范围:
    • message 推送消息
    • notification 通知
    • notificationOpen 通知打开
    • notificationClickedWithNoAction 点击没有跳转的通知,iOS不支持
    • notificationReceivedInApp app内接受通知,iOS不支持
    • notificationRemoved 通知删除,iOS不支持
    • initState 初始化是否成功

示例代码

var aliyunPush = api.require('aliyunPush');
aliyunPush.addEventlistener(function(ret) {
    alert(JSON.stringify(ret));
});

可用性

iOS 系统,Android系统

可提供的1.0.0及更高版本