tpnsApiCloud

概述

注意:应工信部要求,首次调用本模块前必须先弹出隐私协议,详情参考 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

注册推送服务

startXg({params}, fucntion(ret))

params

accessId:

  • 类型:字符串
  • 描述:在腾讯移动推送云控制台申请的 iOS 应用 AccessId
  • 默认值:无

accessKey:

  • 类型:字符串
  • 描述:在腾讯移动推送云控制台申请的 iOS 应用 AccessKey
  • 默认值:无

function(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

注销推送服务

stopXg(function(ret))

function(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    code: 0,                //数值类型;操作状态值
    msg: ""                 //字符串类型;操作状态信息
}

示例代码

var tpush = api.require('tpnsApiCloud'); 
tpush.stopXg(function(ret) {
  console.log("ret:" + JSON.stringify(ret));
});

可用性

iOS系统,Android系统

enableDebug

设置debug模式,上线时请设置为 false

enableDebug({params})

params

enableDebug:

  • 类型:布尔值
  • 描述:设置 debug 模式
  • 默认值:false

示例代码

var tpush = api.require('tpnsApiCloud'); 
tpush.enableDebug({enableDebug: true});

可用性

iOS系统,Android系统

upsertAccount

设置账号,账号类型枚举值可参考 账号类型取值表

upsertAccount({params}, function(ret))

params

account:

  • 类型:字符串
  • 描述:账号值
  • 默认值:无

accountType:

  • 类型:数字
  • 描述:账号类型,可参考 [账号类型取值表](
  • 默认值:0

function(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

删除指定账号

delAccount({params}, function(ret))

params

account:

  • 类型:字符串
  • 描述:账号值
  • 默认值:无

accountType:

  • 类型:数字
  • 描述:账号类型,可参考 [账号类型取值表](
  • 默认值:0

function(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

清除全部账号

clearAccounts(function(ret))

function(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    code: 0,                //数值类型;操作状态值
    msg: ""                 //字符串类型;操作状态信息
}

示例代码

var tpush = api.require('tpnsApiCloud'); 
tpush.clearAccounts(function(ret) {
  console.log("ret:" + JSON.stringify(ret));
});

可用性

iOS系统,Android系统

appendTags

追加标签

appendTags({params}, function(ret))

params

tags:

  • 类型:字符串数组
  • 描述:标签数组,标签字符串不允许有空格或者是tab字符
  • 默认值:无

function(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

覆盖标签(清除所有标签再追加)

clearAndAppendTags({params}, function(ret))

params

tags:

  • 类型:字符串数组
  • 描述:标签数组,标签字符串不允许有空格或者是tab字符
  • 默认值:无

function(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

删除指定标签

delTags({params}, function(ret))

params

tags:

  • 类型:字符串数组
  • 描述:标签数组,标签字符串不允许有空格或者是tab字符
  • 默认值:无

function(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

清除全部标签

clearTags(function(ret))

function(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    code: 0,                //数值类型;操作状态值
    msg: ""                 //字符串类型;操作状态信息
}

示例代码

var tpush = api.require('tpnsApiCloud'); 
tpush.clearTags(function(ret) {
  console.log("ret:" + JSON.stringify(ret));
});

可用性

iOS系统,Android系统

setBadgeNum

同步角标(iOS同步角标值到TPNS,android设置角标值到应用图标)

setBadgeNum({params}, function(ret))

params

badgeNum:

  • 类型:数值
  • 描述:角标数值
  • 默认值:0

function(ret)

ret:

仅 iOS

  • 类型:JSON 对象
  • 内部字段:
{
    code: 0,                //数值类型;操作状态值
    msg: ""                 //字符串类型;操作状态信息
}

示例代码

var arg = {badgeNum: 20};
tpush.setBadgeNum(arg, function(ret) {
  console.log("ret:" + JSON.stringify(ret));
});

可用性

iOS系统,Android系统

cancelAllNotification

清除全部通知

cancelAllNotification()

示例代码

var tpush = api.require('tpnsApiCloud'); 
tpush.cancelAllNotification();

可用性

iOS系统,Android系统

createNotificationChannel

创建通知渠道(仅android),自定义铃声文件请放置在安卓资源目录 res/raw 下,参数 soundFileName 请填资源文件名(不带后缀)。

createNotificationChannel({params})

params

channelId:

  • 类型:字符串
  • 描述:通知渠道ID
  • 默认值:无

channelName:

  • 类型:字符串
  • 描述:通知渠道名称
  • 默认值:无

enableVibration:

  • 类型:布尔值
  • 描述:是否震动
  • 默认值:true

enableLights:

  • 类型:布尔值
  • 描述:是否闪光灯
  • 默认值:true

enableSound:

  • 类型:布尔值
  • 描述:是否有铃声
  • 默认值:true

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系统

getOtherPushInfo()

获取厂商通道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})

params

enableOtherPush:

  • 类型:布尔值
  • 描述:是否启用厂商推送
  • 默认值:false

示例代码

var tpush = api.require('tpnsApiCloud'); 
tpush.enableOtherPush({enableOtherPush: true}); 

设置小米厂商推送参数

setMiPushAppId({params})

params

appId:

  • 类型:字符串
  • 描述:小米推送 appId
  • 默认值:无

setMiPushAppKey({params})

params

appKey:

  • 类型:字符串

  • 描述:小米推送 appKey

  • 默认值:无

示例代码

var tpush = api.require('tpnsApiCloud'); 
tpush.setMiPushAppId({appId: "mipush_appId"});
tpush.setMiPushAppKey({appKey: "mipush_appKey"});

设置魅族厂商推送参数

setMzPushAppId({params})

params

appId:

  • 类型:字符串
  • 描述:魅族推送 appId
  • 默认值:无

setMzPushAppKey({params})

params

appKey:

  • 类型:字符串

  • 描述:魅族推送 appKey

  • 默认值:无

示例代码

var tpush = api.require('tpnsApiCloud'); 
tpush.setMzPushAppId({appId: "mzpush_appId"});
tpush.setMzPushAppKey({appKey: "mzpush_appKey"});

设置OPPO厂商推送参数

setOppoPushAppKey({params})

params

appKey:

  • 类型:字符串
  • 描述:OPPO推送 appId
  • 默认值:无

setOppoPushAppSecret({params})

params

appSecret:

  • 类型:字符串

  • 描述:OPPO推送 appKey

  • 默认值:无

示例代码

var tpush = api.require('tpnsApiCloud'); 
tpush.setOppoPushAppKey({appKey: "oppopush_appKey"});
tpush.setOppoPushAppSecret({appSecret: "oppopush_appSecret"});

可用性

Android系统

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