aliPush
来自于:开发者立即使用
isRegister onAppStart addTag removeTag listTags addAlias removeAlias listAliases bindAccount unbindAccount setDoNotDisturb addEventListener getDeviceId bindPhoneNumber unbindPhoneNumber setNotificationSoundFilePath closeDoNotDisturbMode clearNotifications clearNotifications
论坛示例
为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码供您参考。
阿里云移动推送
开发者在使用aliPush模块时,需要开发者自行到阿里云注册账号,并开通移动推送功能。本模块与其它阿里相关或者集成了小米推送相关模块会存在冲突的可能,请大家使用时注意。
小米和华为的特殊推送需要去小米官网和华为官方申请,阿里云注册具体流程请参考如下介绍。
申请步骤
1、登录阿里云帐号
访问阿里云云控制台页面,若您未登录账号,将会进入账号登录页面, 登录地址:https://account.aliyun.com/login/login.htm 如下图:
2、登陆阿里云控制台,具体如下图:
3、创建应用 点击”创建应用”,系统将为您弹出需要填写应用的相关信息,具体如下图:
4、获取应用证书和SDK
创建应用后,在应用证书处查看AppKey和AppSecret,同时下载自己的专有sdk。具体如下图:
5、配置小米和华为通道参数
支持小米,华为多通道推送,小米和华为的特殊推送需要去小米官网和华为官方申请,申请后将参数填写本页面方可。具体如下图:
6、常见错误码。
错误码 | 错误描述 |
---|---|
1011 | appKey配置错误 |
1012 | appSecret配置错误 |
1013 | session初始化失败 |
1014 | 连接AS错误,检查网络连接 |
1015 | sid获取失败 |
2001 | 标签输入为空 |
2002 | appId错误 |
2003 | 标签请求错误 |
3001 | acount参数输入错误 |
3002 | 推送通道关闭 |
3003 | 绑定账号请求超时 |
3004 | 绑定账号状态码错误 |
4001 | 别名输入为空 |
5001 | VIP请求状态码错误 |
5002 | VIP请求连接错误 |
5003 | VIP请求服务错误 |
5004 | VIP参数生成错误 |
6001 | 其他输入错误 |
模块使用攻略
1、获取成功小米config.xml配置信息如下:
<meta-data name="com.huawei.hms.client.appid" value="appid=华为开放平台申请的ID信息" />
<meta-data name="com.vivo.push.api_key" value="请填写vivo平台上注册应用的appKey" />
<meta-data name="com.vivo.push.app_id" value="请填写vivo平台上注册应用的appID" />
<feature name="aliPush">
<param name="AppKey_iOS" value="23398490"/>
<param name="AppSecret_iOS" value="e4af5692df06ebbc621b55657ca4a4bc"/>
<param name="AppKey_Android" value="23398490"/>
<param name="AppSecret_Android" value="e4af5692df06ebbc621b55657ca4a4bc"/>
<param name="XmAppID" value="你的小米appid"/>
<param name="XmAppKey" value="你的小米appkey"/>
<param name="OppoAppKey" value="你的oppo appkey"/>
<param name="OppoAppSecret" value="你的oppo appsecret"/>
<param name="MeizuAppId" value="你的meizu appid"/>
<param name="MeizuAppKey" value="你的meizu appkey"/>
<param name="channelId" value="你的推送渠道ID(兼容Android8.0)"/>
<param name="channelName" value="你的推送渠道名称(兼容Android8.0)"/>
<param name="channelDes" value="你的推送渠道描述(兼容Android8.0)"/>
<param name="enableLights" value="true"/>
<param name="enableVibration" value="true"/>
</feature>
2、开启小米、华为辅助通道,后台需要设置pushRequest.setAndroidOpenType(APPLICATION); pushRequest.setAndroidPopupActivity(“”); 这个Activity的名称是:com.xiaomi.huawei.push.XiaoMiPushActivity
3、为了解决和其他阿里模块使用了utdid的冲突问题,新增加了aliPushNoUtdId模块
固件要求
Android:4.1及以上 iOS:8.0及以上
第三方公共文件
Android | iOS |
---|---|
utdid4all-1.1.5.3_proguard.jar | UTDID.framework |
app-monitor-sdk-2.5.1.3_for_bc_proguard.jar | UTMini.framework |
alicloud-android-beacon-1.0.1.jar | |
alicloud-android-utils-1.1.3.jar | |
litepreferences.jar | |
huawei-push-2.6.3.305.aar | |
huawei-push-base-2.6.3.305.aar | |
meizu-push-3.8.3-fix.aar |
模块接口
isRegister
获取是否注册阿里移动推送成功
isRegister(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true //布尔型;true||false
}
err:
- 类型:JSON对象
- 内部字段:
{
errorCode: "",
errorMessage: ""
}
示例代码
var demo = api.require('aliPush');
demo.isRegister(function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
onAppStart
app启动时,进行启动信息统计
onAppStart(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true //布尔型;true||false
}
err:
- 类型:JSON对象
- 内部字段:
{
msg: ""
}
示例代码
var demo = api.require('aliPush');
demo.onAppStart(function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
Android系统
可提供的1.0.0及更高版本
addTag
客户端自定义标签
addTag({params}, callback(ret, err))
params
target:
- 类型:数字型
- 描述:(可选项)目标类型,1:本设备; 2:本设备绑定账号; 3:别名。
- 默认值:3
tag:
- 类型:字符串
- 描述:(可选项)标签名,支持多个标签,用空格隔开。
alias:
- 类型:字符串
- 描述:(可选项)别名(仅当target = 3时生效)。
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true||false
response : //
}
err:
- 类型:JSON对象
- 内部字段:
{
errorCode: "",
errorMessage:""
}
示例代码
var obj = api.require('aliPush');
obj.addTag({
target : 1,
tag : "apicloud1 apicloud2",
alias : ''
},
function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
removeTag
移除客户端自定义标签
removeTag({params}, callback(ret, err))
params
target:
- 类型:数字型
- 描述:(可选项)移除目标类型,1:本设备; 2:本设备绑定账号; 3:别名。
- 默认值:3
tag:
- 类型:字符串
- 描述:(可选项)移除标签名,支持多个标签,用空格隔开。
alias:
- 类型:字符串
- 描述:(可选项)移除别名(仅当target = 3时生效)。
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true||false
response : //
}
err:
- 类型:JSON对象
- 内部字段:
{
errorCode: "",
errorMessage:""
}
示例代码
var obj = api.require('aliPush');
obj.removeTag({
target : 1,
tag : "apicloud1 apicloud2",
alias : ''
},
function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
listTags
查询目标绑定标签,当前仅支持查询设备标签;
listTags(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true||false
response : //
}
err:
- 类型:JSON对象
- 内部字段:
{
msg: ""
}
示例代码
var demo = api.require('aliPush');
demo.listTags(function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
addAlias
添加别名
addAlias({params}, callback(ret, err))
params
alias:
- 类型:字符串
- 描述:(必填项)别名。
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true||false
response : //
}
err:
- 类型:JSON对象
- 内部字段:
{
errorCode: "",
errorMessage:""
}
示例代码
var obj = api.require('aliPush');
obj.addAlias({
alias : 'test01'
},
function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
removeAlias
删除设备别名;
removeAlias({params}, callback(ret, err))
params
alias:
- 类型:字符串
- 描述:(可选项)移除别名(为空则删除全部别名)。
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true||false
response : //
}
err:
- 类型:JSON对象
- 内部字段:
{
errorCode: "",
errorMessage:""
}
示例代码
var obj = api.require('aliPush');
obj.removeAlias({
alias : ''
},
function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
listAliases
查询设备别名
listAliases(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true||false
response : //
}
err:
- 类型:JSON对象
- 内部字段:
{
msg: ""
}
示例代码
var demo = api.require('aliPush');
demo.listAliases(function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
bindAccount
将本设备和指定账号做绑定
bindAccount({params}, callback(ret, err))
params
account:
- 类型:字符串
- 描述:(必填项)账号名称。
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true||false
response : //
}
err:
- 类型:JSON对象
- 内部字段:
{
errorCode: "",
errorMessage:""
}
示例代码
var obj = api.require('aliPush');
obj.bindAccount({
account: "apicloud"
},
function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
unbindAccount
解绑和指定账号的本设备的绑定
unbindAccount(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true||false
response : //
}
err:
- 类型:JSON对象
- 内部字段:
{
errorCode: "",
errorMessage:""
}
示例代码
var obj = api.require('aliPush');
obj.unbindAccount(function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
setDoNotDisturb
设置免打扰时间段
setDoNotDisturb({params}, callback(ret, err))
params
startHour:
- 类型:数字型
- 描述:(可选项)免打扰的起始时间(小时),24小时制,取值范围:0-23。
startMinute:
- 类型:数字型
- 描述:(可选项)免打扰起始时间(分钟),取值范围:0-59。
endHour:
- 类型:数字型
- 描述:(可选项)免打扰的结束时间(小时),24小时制,取值范围:0-23。
endMinute:
- 类型:数字型
- 描述:(可选项)免打扰结束时间(分钟),取值范围:0-59。
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true||false
response : //
}
err:
- 类型:JSON对象
- 内部字段:
{
errorCode: "",
errorMessage:""
}
示例代码
#设置晚上11点至白天8点免打扰
var obj = api.require('aliPush');
obj.setDoNotDisturb({
startHour: 23,
startMinute: 0,
endHour: 8,
endMinute: 0
},
function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
Android系统
可提供的1.0.0及更高版本
addEventListener
拦截通知,接收消息,获取推送中的扩展字段
addEventListener({params}, callback(ret, err))
params
1
name:’onMessage’
- 类型:字符串
- 描述:(可选项)用于接收服务端推送的消息(控制台选择推送消息,则不会触发弹窗,而会回调该方法。反之,推送通知不会触发该方法。) message 消息内容。
2
name:’onNotification’
- 类型:字符串
- 描述:(可选项)用于在接收通知后,用户需要自定义操作的场景,或者用于获取扩展字段。 ios和安卓返回消息体请分别处理。
3
name:’onNotificationOpened’
- 类型:字符串
- 描述:(可选项)在用户打开(某个)notification的时候,会回调该方法。ios和安卓返回消息体请分别处理。
4
name:’onNotificationRemoved’
- 类型:字符串
- 描述:(可选项)在用户删除(某个)notification的时候,会回调该方法。 messageId 消息id,删除的消息的Id。
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true||false
title: //标题 (仅onMessage,onNotification,onNotificationOpened监听有值)
summary://内容 (仅onMessage,onNotification,onNotificationOpened监听有值)
extraMap://扩展字段,以json字段形式表示 (仅onNotification,onNotificationOpened监听有值)
messageId://删除的消息的Id (仅onMessage,onNotificationRemoved监听有值)
}
示例代码
var obj = api.require('aliPush');
obj.addEventListener({
name: 'onMessage'
},
function(ret, err) {
alert("onMessage>>>addEventListener>>>>" + JSON.stringify(ret));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
getDeviceId
获取设备DeviceId
getDeviceId(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true
DeviceId : '' //设备ID
}
示例代码
var demo = api.require('aliPush');
demo.getDeviceId(function(ret) {
alert(JSON.stringify(ret));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
bindPhoneNumber
绑定电话号码(多个设备可以绑定同一电话,一个设备只能绑定一个号码,多次绑定不同号码,以最后一次绑定号码为准。)
bindPhoneNumber({params}, callback(ret, err))
params
phoneNumber:
- 类型:字符串
- 描述:(必填项)电话号码。
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true||false
response : //
}
err:
- 类型:JSON对象
- 内部字段:
{
errorCode: "",
errorMessage:""
}
示例代码
var obj = api.require('aliPush');
obj.bindPhoneNumber({
phoneNumber: "18080040444"
},
function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
Android系统
可提供的1.0.0及更高版本
unbindAccount
解绑电话号码
unbindPhoneNumber(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true||false
response : //
}
err:
- 类型:JSON对象
- 内部字段:
{
errorCode: "",
errorMessage:""
}
示例代码
var obj = api.require('aliPush');
obj.unbindPhoneNumber(function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
Android系统
可提供的1.0.0及更高版本
setNotificationSoundFilePath
设置推送通知声音文件路径(若不调用本接口,默认获取资源id为R.raw.alicloud_notification_sound的资源文件;若没有获取到指定声音文件,取设备设置的消息声音)
setNotificationSoundFilePath({params}, callback(ret, err))
params
filePath:
- 类型:字符串
- 描述:(必填项)通知声音文件路径。(支持fs://路径)。
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true //布尔型;true||false
}
err:
- 类型:JSON对象
- 内部字段:
{
errorCode: "",
errorMessage:""
}
示例代码
var obj = api.require('aliPush');
obj.setNotificationSoundFilePath({
filePath: "fs://alicloud_notification_sound.mp3"
},
function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
Android系统
可提供的1.0.0及更高版本
closeDoNotDisturbMode
关闭免打扰功能(关闭后,先前设置的免打扰时段失效)
closeDoNotDisturbMode(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true //布尔型;true
}
示例代码
var obj = api.require('aliPush');
obj.closeDoNotDisturbMode(function(ret) {
alert(JSON.stringify(ret));
});
可用性
Android系统
可提供的1.0.0及更高版本
clearNotifications
删除推送SDK创建的所有通知
clearNotifications(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true //布尔型;true
}
示例代码
var obj = api.require('aliPush');
obj.clearNotifications(function(ret) {
alert(JSON.stringify(ret));
});
可用性
Android系统
可提供的1.0.0及更高版本
syncBadgeNum
同步角标数到服务端
syncBadgeNum(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true
response : //
}
示例代码
var obj = api.require('aliPush');
obj.syncBadgeNum(function(ret) {
alert(JSON.stringify(ret));
});
可用性
iOS系统
可提供的1.0.0及更高版本