开发者在使用aliPushNoUtdId模块时,需要开发者自行到阿里云注册账号,并开通移动推送功能。本模块与其它阿里相关或者集成了小米推送相关模块会存在冲突的可能,请大家使用时注意。
小米和华为的特殊推送需要去小米官网和华为官方申请,阿里云注册具体流程请参考如下介绍。
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="aliPushNoUtdId">
<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、如果自己的app只需要阿里推送,不用阿里其他模块,请使用aliPush模块。本模块是为了解决自己app有阿里其他模块使用utdid冲突而新增的模块。
4、各个第三方厂商配套插件自定义插件 第三方厂商配套插件下载 。
5、本模块需要配合其他含阿里utdid包的模块才能正常使用,如果其他模块的utdid版本低于本模块开发环境的版本,则可能会出现异常(Android:utdid4all-1.1.5.3_proguard.jar;iOS:utdid4all-1.1.0)utdid版本对应自定义模块下载 。
阿里推送注册(App启动时未开启自动注册推送时使用)
registerPush(callback(ret, err))
ret:
{
status: true //布尔型;true||false
}
err:
{
errorCode: "",
errorMessage: ""
}
var demo = api.require('aliPushNoUtdId');
demo.registerPush(function(ret, err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
设置是否在app启动是自动注册推送
setAutoRegister({params})
isAutoRegister:
{
status: true //布尔型;true||false
}
var demo = api.require('aliPushNoUtdId');
var ret = demo.setAutoRegister();
alert(JSON.stringify(ret));
iOS、Android系统
可提供的1.0.0及更高版本
获取是否在app启动是自动注册推送
getAutoRegister()
{
status: true //布尔型;true||false
isAutoRegister : false //布尔型;true||false
}
var demo = api.require('aliPushNoUtdId');
var ret = demo.getAutoRegister();
alert(JSON.stringify(ret));
iOS、Android系统
可提供的1.0.0及更高版本
获取是否注册阿里移动推送成功(App启动时已开启自动注册推送时使用)
isRegister(callback(ret, err))
ret:
{
status: true //布尔型;true||false
}
err:
{
errorCode: "",
errorMessage: ""
}
var demo = api.require('aliPushNoUtdId');
demo.isRegister(function(ret, err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
app启动时,进行启动信息统计
onAppStart(callback(ret, err))
ret:
{
status: true //布尔型;true||false
}
err:
{
msg: ""
}
var demo = api.require('aliPushNoUtdId');
demo.onAppStart(function(ret, err) {
alert(JSON.stringify(ret));
});
Android系统
可提供的1.0.0及更高版本
客户端自定义标签
addTag({params}, callback(ret, err))
target:
tag:
alias:
ret:
{
status: true, //布尔型;true||false
response : //
}
err:
{
errorCode: "",
errorMessage:""
}
var obj = api.require('aliPushNoUtdId');
obj.addTag({
target : 1,
tag : "apicloud1 apicloud2",
alias : ''
},
function(ret, err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
移除客户端自定义标签
removeTag({params}, callback(ret, err))
target:
tag:
alias:
ret:
{
status: true, //布尔型;true||false
response : //
}
err:
{
errorCode: "",
errorMessage:""
}
var obj = api.require('aliPushNoUtdId');
obj.removeTag({
target : 1,
tag : "apicloud1 apicloud2",
alias : ''
},
function(ret, err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
查询目标绑定标签,当前仅支持查询设备标签;
listTags(callback(ret, err))
ret:
{
status: true, //布尔型;true||false
response : //
}
err:
{
msg: ""
}
var demo = api.require('aliPushNoUtdId');
demo.listTags(function(ret, err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
添加别名
addAlias({params}, callback(ret, err))
alias:
ret:
{
status: true, //布尔型;true||false
response : //
}
err:
{
errorCode: "",
errorMessage:""
}
var obj = api.require('aliPushNoUtdId');
obj.addAlias({
alias : 'test01'
},
function(ret, err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
删除设备别名;
removeAlias({params}, callback(ret, err))
alias:
##callback(ret, err)
ret:
{
status: true, //布尔型;true||false
response : //
}
err:
{
errorCode: "",
errorMessage:""
}
var obj = api.require('aliPushNoUtdId');
obj.removeAlias({
alias : ''
},
function(ret, err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
查询设备别名
listAliases(callback(ret, err))
ret:
{
status: true, //布尔型;true||false
response : //
}
err:
{
msg: ""
}
var demo = api.require('aliPushNoUtdId');
demo.listAliases(function(ret, err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
将本设备和指定账号做绑定
bindAccount({params}, callback(ret, err))
account:
ret:
{
status: true, //布尔型;true||false
response : //
}
err:
{
errorCode: "",
errorMessage:""
}
var obj = api.require('aliPushNoUtdId');
obj.bindAccount({
account: "apicloud"
},
function(ret, err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
解绑和指定账号的本设备的绑定
unbindAccount(callback(ret, err))
ret:
{
status: true, //布尔型;true||false
response : //
}
err:
{
errorCode: "",
errorMessage:""
}
var obj = api.require('aliPushNoUtdId');
obj.unbindAccount(function(ret, err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
设置免打扰时间段
setDoNotDisturb({params}, callback(ret, err))
startHour:
startMinute:
endHour:
endMinute:
ret:
{
status: true, //布尔型;true||false
response : //
}
err:
{
errorCode: "",
errorMessage:""
}
设置晚上11点至白天8点免打扰
var obj = api.require('aliPushNoUtdId');
obj.setDoNotDisturb({
startHour: 23,
startMinute: 0,
endHour: 8,
endMinute: 0
},
function(ret, err) {
alert(JSON.stringify(ret));
});
Android系统
可提供的1.0.0及更高版本
拦截通知,接收消息,获取推送中的扩展字段
addEventListener({params}, callback(ret, err))
##params
name:'onMessage'
name:'onNotification'
name:'onNotificationOpened'
name:'onNotificationRemoved'
ret:
{
status: true, //布尔型;true||false
title: //标题 (仅onMessage,onNotification,onNotificationOpened监听有值)
summary://内容 (仅onMessage,onNotification,onNotificationOpened监听有值)
extraMap://扩展字段,以json字段形式表示 (仅onNotification,onNotificationOpened监听有值)
messageId://删除的消息的Id (仅onMessage,onNotificationRemoved监听有值)
}
var obj = api.require('aliPushNoUtdId');
obj.addEventListener({
name: 'onMessage'
},
function(ret, err) {
alert("onMessage>>>addEventListener>>>>" + JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
获取设备DeviceId
getDeviceId(callback(ret, err))
ret:
{
status: true, //布尔型;true
DeviceId : '' //设备ID
}
var demo = api.require('aliPushNoUtdId');
demo.getDeviceId(function(ret) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
绑定电话号码(多个设备可以绑定同一电话,一个设备只能绑定一个号码,多次绑定不同号码,以最后一次绑定号码为准。)
bindPhoneNumber({params}, callback(ret, err))
phoneNumber:
ret:
{
status: true, //布尔型;true||false
response : //
}
err:
{
errorCode: "",
errorMessage:""
}
var obj = api.require('aliPushNoUtdId');
obj.bindPhoneNumber({
phoneNumber: "18080040444"
},
function(ret, err) {
alert(JSON.stringify(ret));
});
Android系统
可提供的1.0.0及更高版本
解绑电话号码
unbindPhoneNumber(callback(ret, err))
ret:
{
status: true, //布尔型;true||false
response : //
}
err:
{
errorCode: "",
errorMessage:""
}
var obj = api.require('aliPushNoUtdId');
obj.unbindPhoneNumber(function(ret, err) {
alert(JSON.stringify(ret));
});
Android系统
可提供的1.0.0及更高版本
设置推送通知声音文件路径(若不调用本接口,默认获取资源id为R.raw.alicloud_notification_sound的资源文件;若没有获取到指定声音文件,取设备设置的消息声音)
setNotificationSoundFilePath({params}, callback(ret, err))
filePath:
ret:
{
status: true //布尔型;true||false
}
err:
{
errorCode: "",
errorMessage:""
}
var obj = api.require('aliPushNoUtdId');
obj.setNotificationSoundFilePath({
filePath: "fs://alicloud_notification_sound.mp3"
},
function(ret, err) {
alert(JSON.stringify(ret));
});
Android系统
可提供的1.0.0及更高版本
关闭免打扰功能(关闭后,先前设置的免打扰时段失效)
closeDoNotDisturbMode(callback(ret))
ret:
{
status: true //布尔型;true
}
var obj = api.require('aliPushNoUtdId');
obj.closeDoNotDisturbMode(function(ret) {
alert(JSON.stringify(ret));
});
Android系统
可提供的1.0.0及更高版本
删除推送SDK创建的所有通知
clearNotifications(callback(ret))
ret:
{
status: true //布尔型;true
}
var obj = api.require('aliPushNoUtdId');
obj.clearNotifications(function(ret) {
alert(JSON.stringify(ret));
});
Android系统
可提供的1.0.0及更高版本
同步角标数到服务端
syncBadgeNum(callback(ret))
ret:
{
status: true, //布尔型;true
response : //
}
var obj = api.require('aliPushNoUtdId');
obj.syncBadgeNum(function(ret) {
alert(JSON.stringify(ret));
});
iOS系统
可提供的1.0.0及更高版本