aliPush

阿里云移动推送

开发者在使用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" />
<meta-data name="com.hihonor.push.app_id" value="请填写荣耀平台上注册应用的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"/>
<param name="sendId" value="你的fcm sendId"/>
<param name="applicationId" value="你的fcm applicationId"/>
<param name="projectId" value="你的fcm projectId"/>
<param name="apiKey" value="你的fcm apiKey"/>
</feature>

2、开启小米、华为辅助通道,后台需要设置pushRequest.setAndroidOpenType(APPLICATION);

pushRequest.setAndroidPopupActivity("");

这个Activity的名称是:com.xiaomi.huawei.push.XiaoMiPushActivity

StoreOffline参数也需要设置为true

3、为了解决和其他阿里模块使用了utdid的冲突问题,新增加了aliPushNoUtdId模块

4、各个第三方厂商配套插件自定义插件 第三方厂商配套插件下载

模块接口

registerPush

阿里推送注册(App启动时未开启自动注册推送时使用)

registerPush(callback(ret, err))

##callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    errorCode: "",
    errorMessage: ""
}

示例代码

var demo = api.require('aliPush');
demo.registerPush(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

setAutoRegister

设置是否在app启动是自动注册推送

setAutoRegister({params})

params

isAutoRegister:

  • 类型:布尔型
  • 描述:(可选项)是否启动app时自动注册阿里推送逻辑。
  • 默认值:false

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

示例代码

var demo = api.require('aliPush');
var ret = demo.setAutoRegister();
alert(JSON.stringify(ret));

可用性

iOS、Android系统

可提供的1.0.0及更高版本

getAutoRegister

获取是否在app启动是自动注册推送

getAutoRegister()

##ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
    isAutoRegister : false //布尔型;true||false
}

示例代码

var demo = api.require('aliPush');
var ret = demo.getAutoRegister();
alert(JSON.stringify(ret));

可用性

iOS、Android系统

可提供的1.0.0及更高版本

isRegister

获取是否注册阿里移动推送成功(App启动时已开启自动注册推送时使用)

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及更高版本

是否仍需要帮助? 请保持联络!
最后更新于 2024/04/24