tpns

概述

本插件封装了腾讯移动推送SDK。腾讯云移动推送为应用提供合法合规、消息通道稳定、消息高效秒达、全球服务覆盖的推送服务,支持 App 推送、应用内消息等多种消息推送类型,同时具备标签化精准推送能力,有效助力App的精细化运营,提升用户活跃度。

##开通流程

1、注册腾讯云账号,详情参见 <注册腾讯云> https://mc.tencent.com/M0wcfln0 教程。

2、新增产品

(1)登录 <移动推送控制台> https://mc.tencent.com/7FWgKPIx ,单击左侧菜单栏【产品管理】。

(2)进入产品管理页面,单击【新增产品】。

(3)进入新增产品页面,填写产品名称、产品详情、选择产品分类和服务接入点,服务接入点说明参见文档 <全球化部署> https://mc.tencent.com/G9m95DXK

(4)勾选下方 Android、iOS、macOS 时,系统将默认为您创建该平台下的应用。使用 YonBuilder移动开发 开发时仅勾选Android、iOS即可。

使用此插件之前需先配置 config.xml 文件,方法如下

  • 配置示例:

//IOS配置
<feature name="tpns">
    <param  name="accessID_iOS" value=""/>
    <param  name="accessKey_iOS" value=""/>
</feature>

//Android配置:
//<!--腾讯推送start [TPNS控制台](https://console.cloud.tencent.com/tpns) --> 
<meta-data name="XG_V2_ACCESS_ID" value="AccessId"/>
<meta-data name="XG_V2_ACCESS_KEY" value="AccessKey" />
// <!-- 腾讯推送 end -->

// <!--vivo start ->
// [vivo 通道接入](https://cloud.tencent.com/document/product/548/36657) 
<meta-data name="com.vivo.push.api_key" value="VIVO的APPKEY" />
<meta-data name="com.vivo.push.app_id" value="VIVO的APPID" />
// <!-- vivo end -->

// <!--honor start ->
// [honor 通道接入](https://cloud.tencent.com/document/product/548/74465) 
<meta-data android:name="com.hihonor.push.app_id" android:value="荣耀推送的 AppId"/>
// <!-- honor end -->


//华为通道暂不支持

// 服务接入点域名配置,如果您的应用服务接入点为广州,SDK 默认实现该配置。[其他服务接入点域名参考](https://cloud.tencent.com/document/product/548/36652)
如:
<meta-data name="XG_SERVER_SUFFIX"  value="tpns.sh.tencent.com" />
  • 字段描述:

    accessID_iOS:iOS端通过移动推送 TPNS 控制台申请的AccessID。

    accessKey_iOS:iOS端通过移动推送 TPNS 控制台申请的AccessKey。

插件接口

setBadge

调用此接口上报当前 App 角标数到腾讯移动推送服务器,客户端配置完成即可使用“ 角标自动加1”的功能,此功能在管理台位置(创建推送 > 通知栏消息 > 常用设置 > 角标数字)。

setBadge({params})

params

badge

  • 类型:数字类型
  • 描述:(可选项)角标数
  • 默认:0

示例代码

var tpns = api.require('tpns');
tpns.setBadge({
  badge:0
});

可用性

iOS系统,Android系统不支持

可提供的1.0.0及更高版本

setApplicationBadgeNumber

设置 App 显示的角标数量。

setApplicationBadgeNumber({params})

params

badge

  • 类型:数字类型
  • 描述:(可选项)角标数
  • 默认:0

示例代码

var tpns = api.require('tpns');
tpns.setApplicationBadgeNumber({
  badge:0
});

可用性

iOS系统,Android系统不支持

可提供的1.0.0及更高版本

getApplicationBadgeNumber

获取 App 显示的角标数量。

getApplicationBadgeNumber(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    badge:0                  //数字类型;角标数
}

示例代码

var tpns = api.require('tpns');
tpns.getApplicationBadgeNumber(function(ret, err) {
   api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统不支持

可提供的1.0.0及更高版本

getToken

设备注册,获取 token。

getToken(callback(ret,err))

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    token:''                  //字符;token
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg:''                  //字符;msg
}

示例代码

var tpns = api.require('tpns');
tpns.getToken(function(ret, err) {
   api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

deviceNotificationIsAllowed

查询设备通知权限是否被用户允许。

deviceNotificationIsAllowed(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    isAllowed:true         //布尔类型;备通知权限是否被用户允许
}

示例代码

var tpns = api.require('tpns');
tpns.deviceNotificationIsAllowed(function(ret) {
   api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addEventlistener

添加推送事件监听

addEventlistener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{

  eventType: '',  //字符串类型;消息类型
  msg:{},         //JSON类型;推送内容
   status:true,           //布尔类型;是否成功,除notification、clickNotification外,其他消息均返回
   queryTags:{            //JSON类型;查询标签结果
      tags:[],                 //数组类型;标签数组
      totalCount:10,       //数字类型;绑定的所有标签总数
    },  
   upsertAccount:{            //JSON类型;绑定账号结果
      accountsDict:{}      //JSON类型;账号JSON
   },                   
   delAccounts:{            //JSON类型;绑定账号结果
      accountsKeys:[]      //数组类型;账号数组
   },  
  appendTags:{            //JSON类型;绑定标签的结果
      tags:[]      //数组类型;标签数组
  }, 
  delTags:{            //JSON类型;解绑标签的结果
      tags:[]      //数组类型;标签数组
  }, 
  clearAndAppendTags:{            //JSON类型;更新标签的结果
      tags:[]      //数组类型;标签数组
  },
  upsertAttributes:{            //JSON类型;新增用户属性
     attributes:{},      //JSON类型;用户属性JSON
     keys:[],      //数组类型;无效用户属性键的数组, 未在管理台配置
  }, 
  delAttributes:{            //JSON类型;删除用户已有的属性
     attributeKeys:[],      //数组类型;用户属性key组成的集合
     keys:[],      //数组类型;无效用户属性键的数组, 未在管理台配置
  }, 
  clearAndAppendAttributes:{            //JSON类型;清空已有用户属性,然后批量添加用户属性
     attributes:{},      //JSON类型;用户属性JSON
     keys:[],      //数组类型;无效用户属性键的数组, 未在管理台配置
  },  
}

eventType:

  • 类型:字符串
  • 描述:消息类型
  • 取值范围:
    • notification 通知
    • clickNotification 通知被点击
    • queryTags 查询标签
    • upsertAccount 绑定账号
    • delAccounts 解绑账号
    • clearAccounts 清除账号
    • appendTags 绑定标签
    • delTags 解绑标签
    • clearTags 清除标签
    • clearAndAppendTags 清空已有标签,然后批量添加标签
    • upsertAttributes 新增用户属性
    • delAttributes 删除用户已有的属性
    • clearAttributes 清空已有用户属性
    • clearAndAppendAttributes 清空已有用户属性,然后批量添加用户属性

示例代码

var tpns = api.require('tpns');
tpns.addEventlistener(function(ret) {
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS 系统,Android系统

可提供的1.0.0及更高版本

removeEventListener

移除推送事件监听

removeEventListener()

示例代码

var tpns = api.require('tpns');
tpns.removeEventListener();

可用性

iOS 系统,Android系统

可提供的1.0.0及更高版本

upsertAccount

添加或更新账号,若原来没有该类型账号,则添加;若原来有,则覆盖,账号类型和账号名称一起作为联合主键

upsertAccount({params})

params

account:

  • 类型:字符串类型
  • 描述:账号

type

  • 类型:数字类型
  • 描述:账号类型,账号类型详情可参考文档

示例代码

var tpns = api.require('tpns');
tpns.upsertAccount({
  type:0,
  account:''
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

upsertPhoneNumber

添加或更新用户手机号,若原来没有该手机号,则添加;若原来有,则覆盖

upsertPhoneNumber({params})

params

phoneNumber:

  • 类型:字符串类型
  • 描述:手机号,E.164标准,格式为+[国家或地区码][手机号],例如+8613711112222。SDK内部加密传输

type

  • 类型:数字类型
  • 描述:账号类型,账号类型详情可参考文档

示例代码

var tpns = api.require('tpns');
tpns.upsertPhoneNumber({
  phoneNumber:''
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

delAccounts

删除指定账号类型下的所有账号

delAccounts({params})

params

types

  • 类型:数组类型
  • 描述:账号类型数组,账号类型详情可参考文档
  • 示例:[0,1002]

示例代码

var tpns = api.require('tpns');
tpns.delAccounts({
  types:[0,1002]
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

clearAccounts

清空已有账号

clearAccounts()

示例代码

var tpns = api.require('tpns');
tpns.clearAccounts();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

appendTags

添加标签

appendTags({params})

params

tags:

  • 类型:数组类型
  • 描述:标签数组,最多不超过500个(标签字符串不允许有空格或者是tab字符,长度不超过50)
  • 示例:['tag1','tag2']

示例代码

var tpns = api.require('tpns');
tpns.appendTags({
  tags:[]
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

delTags

删除标签

delTags({params})

params

tags:

  • 类型:数组类型
  • 描述:标签数组,最多不超过500个(标签字符串不允许有空格或者是tab字符,长度不超过50)
  • 示例:['tag1','tag2']

示例代码

var tpns = api.require('tpns');
tpns.delTags({
  tags:[]
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

clearAndAppendTags

清空已有标签,然后批量添加标签

clearAndAppendTags({params})

params

tags:

  • 类型:数组类型
  • 描述:标签数组,最多不超过500个(标签字符串不允许有空格或者是tab字符,长度不超过50)
  • 示例:['tag1','tag2']

示例代码

var tpns = api.require('tpns');
tpns.clearAndAppendTags({
  tags:[]
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

clearTags

清空已有标签

clearTags()

示例代码

var tpns = api.require('tpns');
tpns.clearTags();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

queryTags

查询当前设备(tpns token为准)绑定的标签

  • 举例:"limit 3 offset 1" 表示跳过1条数据,从第2条数据开始取,取3条数据,也就是取2,3,4三条数据
  • 举例: offset为0,则返回最新的标签集合
  • 查询结果通过addEventlistener监听接口返回

queryTags({params})

params

offset:

  • 类型:数字类型
  • 描述:(可选项)此次查询的偏移大小
  • 默认:0

limit:

  • 类型:数字类型
  • 描述:(可选项)此次查询的分页大小, 最大200
  • 默认:10

示例代码

var tpns = api.require('tpns');
tpns.queryTags({
  offset:0,
  limit:10
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

upsertAttributes

添加或更新用户属性,需要先在管理台配置用户属性的键,才能操作成功

upsertAttributes({params})

params

attributes:

  • 类型:json对象
  • 描述:用户属性字符串json对象,字符串不允许有空格或者是tab字符
  • 示例:{'gender':'Female'}

示例代码

var tpns = api.require('tpns');
tpns.upsertAttributes({
  attributes:{}
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

delAttributes

删除用户属性,需要先在管理台配置用户属性的键,才能操作成功

delAttributes({params})

params

keys:

  • 类型:数组类型
  • 描述:用户属性key组成的集合,用户属性是字符串,字符串不允许有空格或者是tab字符

示例代码

var tpns = api.require('tpns');
tpns.delAttributes({
  keys:[]
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

clearAndAppendAttributes

清空已有用户属性,然后批量添加用户属性,需要先在管理台配置用户属性的键,才能操作成功

clearAndAppendAttributes({params})

params

attributes:

  • 类型:json对象
  • 描述:用户属性字符串json对象,字符串不允许有空格或者是tab字符
  • 示例:{'gender':'Female'}

示例代码

var tpns = api.require('tpns');
tpns.clearAndAppendAttributes({
  attributes:{}
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

clearAttributes

清空已有用户属性

clearAttributes()

示例代码

var tpns = api.require('tpns');
tpns.clearAttributes();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

uploadLog

上报日志信息,回调参数可能会被触发多次,如果存在多个日志文件

uploadLog(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
     result:true,//布尔类型;上传成功为true, 失败为false
     message:'',//字符串类型;如果上传成功,则返回日志文件地址。如果上传失败,则返回错误信息
}

示例代码

var tpns = api.require('tpns');
tpns.uploadLog(function(ret) {
    api.alert({ msg:JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

clearTPNSCache

清除TPNS缓存

clearTPNSCache(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
     status:true, //布尔类型;清除结果
}

示例代码

var tpns = api.require('tpns');
tpns.clearTPNSCache(function(ret) {
    api.alert({ msg:JSON.stringify(ret)});
});

可用性

iOS系统,Android系统不支持

可提供的1.0.0及更高版本

getSdkVersion

获取sdk版本号

getSdkVersion(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
     sdkVersion:'', //字符串类型;sdk版本号
}

示例代码

var tpns = api.require('tpns');
tpns.getSdkVersion(function(ret) {
    api.alert({ msg:JSON.stringify(ret)});
});

可用性

iOS系统,Android系统不支持

可提供的1.0.0及更高版本

createNotificationChannel

创建通知渠道

createNotificationChannel({params})

params

channelId:

  • 类型:字符串
  • 描述:通知渠道 Id

channelName:

  • 类型:字符串
  • 描述:通知渠道名称

enableVibration:

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

enableLights:

  • 类型:布尔
  • 描述:是否有呼吸灯
  • 默认:true

示例代码


var tpns = api.require('tpns');
tpns.createNotificationChannel({
    channelId:"",
    channelName:""
});

可用性

仅Adroid系统支持

可提供的1.0.0及更高版本

cancelAllNotifaction

清除通知栏上所有通知

cancelAllNotifaction()

示例代码


var tpns = api.require('tpns');
tpns.cancelAllNotifaction();

可用性

仅Adroid系统支持

可提供的1.0.0及更高版本

enablePullUpOtherApp

是否开启联合能力。联合保活能力,会导致 App 之间存在关联启动或 App 自启动。为满足监管新规,您可关闭联合保活功能。

enablePullUpOtherApp({params})

params

pullUp:

  • 类型:布尔
  • 描述:是否开启联合能力
  • 默认:true 开启

示例代码


var tpns = api.require('tpns');
tpns.enablePullUpOtherApp({
    pullUp:false
});

可用性

仅Adroid系统支持

可提供的1.0.0及更高版本

configMiPush

配置开启小米推送

configMiPush({params})

params

appId:

appKey:

  • 类型:字符串
  • 描述:小米AppKey

示例代码


var tpns = api.require('tpns');
tpns.configMiPush({
    appId:"",
    appKey:""
});

可用性

仅Adroid系统支持

可提供的1.0.0及更高版本

configMeiZuPush

配置开启魅族推送

configMeiZuPush({params})

params

appId:

appKey:

  • 类型:字符串
  • 描述:魅族AppKey

示例代码


var tpns = api.require('tpns');
tpns.configMeiZuPush({
    appId:"",
    appKey:""
});

可用性

仅Adroid系统支持

可提供的1.0.0及更高版本

configOppoPush

配置开启Oppo推送

configOppoPush({params})

params

appKey:

appSecret:

  • 类型:字符串
  • 描述:Oppo AppSecret

示例代码


var tpns = api.require('tpns');
tpns.configOppoPush({
    appKey:"",
    appSecret:""
});

可用性

仅Adroid系统支持

可提供的1.0.0及更高版本

configHonorPush

配置开启Honor推送

configHonorPush()

示例代码


var tpns = api.require('tpns');
tpns.configHonorPush();

可用性

仅Adroid系统支持

可提供的1.0.0及更高版本

unregisterPush

反注册,调用反注册接口后,需要重新调用注册接口才可接收到推送。

unregisterPush(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true/false                  //布尔类型;true反注册成功,false反注册失败
}

示例代码

var tpns = api.require('tpns');
tpns.unregisterPush(function(ret) {
   api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.0.4及更高版本

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