注意:应工信部要求,首次调用本模块前必须先弹出隐私协议,详情参考 Android SDK 合规指南、iOS SDK 合规指南。
移动推送 (Tencent Push Notification Service) 为您提供稳定、快速、高抵达的 App 推送服务。其接入方便快捷,拥有业内领先的技术实力,稳定可靠的消息推送通道,特有的智能推送通道策略,能有效提升消息抵达率;系统每分钟可容纳1800万推送消息,消息能秒级到达(支撑王者荣耀等腾讯内应用推送工具);此外,其具备精准用户标签能力,有效助力 App 的精细化运营。
多种推送形式和方式
移动推送提供丰富的推送方式,可以满足不同行业/不同业务的需求。在推送形式方面,我们提供通知栏推送、应用内推送,同时支持点击后跳转应用、H5、Deeplink 等。此外,我们还支持定时推送、循环推送等不同推送方式,来满足您在不同场景下的推送需求。
移动推送自建通道+厂商通道,快速稳定抵达
支持小米、华为、魅族、vivo、OPPO 等国内主流厂商通道集成,Google 境外支持 FCM 通道。可根据手机品牌,智能选择下发通道,实现在厂商手机上系统级的推送,有效提高推送抵达率。专享通道推送速率30万/s,单推毫秒级抵达。
标签丰富,推送精准
开发者可以调用移动推送 SDK 和后台 API,为设备绑定一个或多个标签。在完成绑定之后,即可针对标签来进行推送,方便进行更精细化的运营。
实时推送效果分析
移动推送提供推送效果的实时分析。实时统计推送的抵达、展示、点击效果等数据口径,并将以上数据在管理台可视化地展现出来,助力实时监控推送效果。
tpnsApiCloud 封装了腾讯移动推送 SDK,方便开发者快捷高效使用移动推送功能。
创建应用并获取 AccessID、AccessKey
用户在使用本模块之前需要创建应用并获取 AccessID、AccessKey,应用创建流程请参照 创建产品和应用。创建成功后可在产品管理>配置管理页面获取应用的 AccessID、AccessKey。
配置 config 文件
申请到 腾讯移动推送 AccessID、AccessKey 后,需要配置在 config.xml 文件内。配置方法如下:
<feature name="tpnsApiCloud" forceBind="false" platform="all"/>
<meta-data name="XG_V2_ACCESS_ID" value="tpns_android_accessId"/>
<meta-data name="XG_V2_ACCESS_KEY" value="tpns_android_accessKey"/>
<!-- 如接入华为推送,此处配置华为推送 appId -->
<meta-data name="com.huawei.hms.client.appid" value="huawei_appId"/>
<!-- 如接入vivo推送,此处配置vivo推送 appId、appKey -->
<meta-data name="com.vivo.push.app_id" value="vpush_appId"/>
<meta-data name="com.vivo.push.api_key" value="vpush_appKey"/>
<!-- 如接入荣耀推送,此处配置荣耀推送 appId -->
<meta-data name="com.hihonor.push.app_id" value="honor_appId"/>
字段描述:
XG_V2_ACCESS_ID:在腾讯移动推送云控制台申请的 Android 应用 AccessId
XG_V2_ACCESS_KEY:在腾讯移动推送云控制台申请的 Android 应用 AccessKey
com.huawei.hms.client.appid:在华为开放平台申请的华为推送 appId
com.vivo.push.app_id:在vivo推送平台申请的vivo推送 appId
com.vivo.push.api_key:在vivo推送平台申请的vivo推送 appKey
com.hihonor.push.app_id:在荣耀开放平台申请的荣耀推送 appId
注册推送服务
startXg({params}, fucntion(ret))
accessId:
accessKey:
ret:
{
code: 0, //数值类型;操作状态值
xgToken: "", //字符串类型;注册成功返回 xgToken,注册失败不返回
msg: "" //字符串类型;操作状态信息
}
var tpush = api.require('tpnsApiCloud');
var arg = {accessId: "accessId", accessKey: "accessKey"};
tpush.startXg(arg, function(ret) {
console.log("ret:" + JSON.stringify(ret));
});
iOS系统,Android系统
注销推送服务
stopXg(function(ret))
ret:
{
code: 0, //数值类型;操作状态值
msg: "" //字符串类型;操作状态信息
}
var tpush = api.require('tpnsApiCloud');
tpush.stopXg(function(ret) {
console.log("ret:" + JSON.stringify(ret));
});
iOS系统,Android系统
设置debug模式,上线时请设置为 false
enableDebug({params})
enableDebug:
var tpush = api.require('tpnsApiCloud');
tpush.enableDebug({enableDebug: true});
iOS系统,Android系统
设置账号,账号类型枚举值可参考 账号类型取值表
upsertAccount({params}, function(ret))
account:
accountType:
ret:
{
code: 0, //数值类型;操作状态值
msg: "" //字符串类型;操作状态信息
}
var tpush = api.require('tpnsApiCloud');
var arg = {account: "account", accountType: 1000};
tpush.upsertAccount(arg, function(ret) {
console.log("ret:" + JSON.stringify(ret));
});
iOS系统,Android系统
删除指定账号
delAccount({params}, function(ret))
account:
accountType:
ret:
{
code: 0, //数值类型;操作状态值
msg: "" //字符串类型;操作状态信息
}
var tpush = api.require('tpnsApiCloud');
var arg = {account: "account", accountType: 1000};
tpush.delAccount(arg, function(ret) {
console.log("ret:" + JSON.stringify(ret));
});
iOS系统,Android系统
清除全部账号
clearAccounts(function(ret))
ret:
{
code: 0, //数值类型;操作状态值
msg: "" //字符串类型;操作状态信息
}
var tpush = api.require('tpnsApiCloud');
tpush.clearAccounts(function(ret) {
console.log("ret:" + JSON.stringify(ret));
});
iOS系统,Android系统
追加标签
appendTags({params}, function(ret))
tags:
ret:
{
code: 0, //数值类型;操作状态值
msg: "" //字符串类型;操作状态信息
}
var tpush = api.require('tpnsApiCloud');
// tags 标签字符串数组(标签字符串不允许有空格或者是tab字符)
var tagvalue = ["tag1", "tag2", "tag3"];
var arg = {tags: tagvalue};
tpush.appendTags(arg, function(ret) {
console.log("ret:" + JSON.stringify(ret));
});
iOS系统,Android系统
覆盖标签(清除所有标签再追加)
clearAndAppendTags({params}, function(ret))
tags:
ret:
{
code: 0, //数值类型;操作状态值
msg: "" //字符串类型;操作状态信息
}
var tpush = api.require('tpnsApiCloud');
// tags 标签字符串数组(标签字符串不允许有空格或者是tab字符)
var tagvalue = ["tag1", "tag2", "tag3"];
var arg = {tags: tagvalue};
tpush.clearAndAppendTags(arg, function(ret) {
console.log("ret:" + JSON.stringify(ret));
});
iOS系统,Android系统
删除指定标签
delTags({params}, function(ret))
tags:
ret:
{
code: 0, //数值类型;操作状态值
msg: "" //字符串类型;操作状态信息
}
var tpush = api.require('tpnsApiCloud');
// tags 标签字符串数组(标签字符串不允许有空格或者是tab字符)
var tagvalue = ["tag1", "tag2", "tag3"];
var arg = {tags: tagvalue};
tpush.delTags(arg, function(ret) {
console.log("ret:" + JSON.stringify(ret));
});
iOS系统,Android系统
清除全部标签
clearTags(function(ret))
ret:
{
code: 0, //数值类型;操作状态值
msg: "" //字符串类型;操作状态信息
}
var tpush = api.require('tpnsApiCloud');
tpush.clearTags(function(ret) {
console.log("ret:" + JSON.stringify(ret));
});
iOS系统,Android系统
同步角标(iOS同步角标值到TPNS,android设置角标值到应用图标)
setBadgeNum({params}, function(ret))
badgeNum:
ret:
仅 iOS
{
code: 0, //数值类型;操作状态值
msg: "" //字符串类型;操作状态信息
}
var arg = {badgeNum: 20};
tpush.setBadgeNum(arg, function(ret) {
console.log("ret:" + JSON.stringify(ret));
});
iOS系统,Android系统
清除全部通知
cancelAllNotification()
var tpush = api.require('tpnsApiCloud');
tpush.cancelAllNotification();
iOS系统,Android系统
创建通知渠道(仅android),自定义铃声文件请放置在安卓资源目录 res/raw
下,参数 soundFileName
请填资源文件名(不带后缀)。
createNotificationChannel({params})
channelId:
channelName:
enableVibration:
enableLights:
enableSound:
soundFileName:
res/raw
下var tpush = api.require('tpnsApiCloud');
var channel = {
channelId: "my_channel_id",
channelName: "my_channel_name",
enableVibration: true,
enableLights: true,
enableSound: true,
soundFileName: "ring_file_name"};
tpush.createNotificationChannel(channel);
Android系统
获取厂商通道token信息接口
注意:以下回调接口请在 startXg
接口返回成功后调用。建议在应用初始化即调用,以免因延迟添加导致收不到回调。
/*
返回参数:
otherPushERR: 三方厂商通道的错误码和错误信息
otherPushType: 厂商通道类型【xiaomi, huawei, oppo, vivo, meizu, honor, fcm】
otherPushToken: 厂商通道token
*/
var tpush = api.require('tpnsApiCloud');
tpush.getOtherPushInfo(function(ret) {
console.log("ret:" + JSON.stringify(ret));
});
注意:以下回调接口请在 startXg
接口前调用。建议在应用初始化即调用,以免因延迟添加导致收不到回调。
/*
返回参数:
msgId: 推送任务ID
title: 标题
content: 消息文本
customMessage: 自定义 key-value
pushChannel: 推送通道
*/
api.addEventListener({name:'onReceiveMessage'}, function(ret, err) {
console.log('onReceiveMessage' + JSON.stringify(ret));
});
/*
返回参数:
title: 标题
content: 消息文本
customMessage: 自定义 key-value
pushChannel: 推送通道
notifactionId: 通知ID
msgId: 推送任务ID
activity: 推送点击跳转目标
notifactionActionType: 推送点击跳转方式
*/
api.addEventListener({name:'onReceiveNotificationResponse'}, function(ret, err) {
console.log('onReceiveNotificationResponse' + JSON.stringify(ret));
});
/*
返回参数:
title:标题
content: 消息文本
customMessage: 自定义 key-value
msgId: 推送任务ID
activityName: 推送点击跳转目标
notifactionActionType: 推送点击跳转方式
actionType: 推送被点击或清除,0:消息被点击,2:消息被清除
*/
api.addEventListener({name:'xgPushClickAction'}, function(ret, err) {
console.log('xgPushClickAction' + JSON.stringify(ret));
});
iOS系统,Android系统
注意:以下回调接口请在 startXg
接口前调用,建议在应用初始化即调用。
enableOtherPush({params})
enableOtherPush:
var tpush = api.require('tpnsApiCloud');
tpush.enableOtherPush({enableOtherPush: true});
setMiPushAppId({params})
appId:
setMiPushAppKey({params})
appKey:
类型:字符串
描述:小米推送 appKey
默认值:无
var tpush = api.require('tpnsApiCloud');
tpush.setMiPushAppId({appId: "mipush_appId"});
tpush.setMiPushAppKey({appKey: "mipush_appKey"});
setMzPushAppId({params})
appId:
setMzPushAppKey({params})
appKey:
类型:字符串
描述:魅族推送 appKey
默认值:无
var tpush = api.require('tpnsApiCloud');
tpush.setMzPushAppId({appId: "mzpush_appId"});
tpush.setMzPushAppKey({appKey: "mzpush_appKey"});
setOppoPushAppKey({params})
appKey:
setOppoPushAppSecret({params})
appSecret:
类型:字符串
描述:OPPO推送 appKey
默认值:无
var tpush = api.require('tpnsApiCloud');
tpush.setOppoPushAppKey({appKey: "oppopush_appKey"});
tpush.setOppoPushAppSecret({appSecret: "oppopush_appSecret"});
Android系统