11/08/2024 16:35:55
TPNS 渠道说明 - 腾讯云收费版
腾讯移动推送通知:为避免华为厂商信鸽推送异常,接入方必须于 2021 年 6 月 30 日前,升级版本至 MSDK5.13(TPNS1.2.0.4)或以上版本。本文档适用于 MSDKV5.10 及以后版本(MSDK TPNS 腾讯云收费版),区别于信鸽的免费版本。腾讯云版本与免费版本相互不兼容,升级之后需要重新申请腾讯移动推送的accessId和accessKey。MSDKV5客户端从 V5.10 版本开始集成腾讯移动推送腾讯云版本,目前腾讯云版本支持可插件化接入,但不再兼容旧版本的信鸽。
自 MSDKV5.10 开始,以区别 V5.9 及以前版本和适配腾讯移动推送腾讯云版本特性,如需要做单推操作,请关注并使用回调中的 xgTpnsToken 字段的值来做单推操作。
一、开发者平台配置
1.1 创建产品
登录 信鸽腾讯云页面 选择【新增产品】创建应用,详情可参考 腾讯移动推送-创建产品和应用文档 。
1.2 创建推送任务及推送测试方法
创建推送任务及推送测试方法,详情参考 腾讯移动推送-创建推送任务及推送测试方法文档 。
1.3 腾讯移动推送服务付费介绍
腾讯移动推送服务付费介绍,详情可参考 腾讯移动推送-产品定价文档 。
MSDK支持:MSDK助手/happyjchen/jiaganzheng
腾讯移动推送侧支持:ablecao
[info]注意:
1、2020年7月1日起,1000台设备量级以下免费试用,无需申请试用,方便随时体验和测试。
2、2020年8月3日前,试用期的日联网设备量超过1000台,会收到超量告警,如您未开通后付费计费,推送将概率性丢失。
3、2020年8月3日起,正式启动超量停服机制,即对免费试用应用增加超量停服的机制。如果您的应用已经放量,请提前开通后付费,避免因超量而停服。
4、内部客户推荐开通按量计费(后付费),并开通欠费不停服特权,即:账号欠费也不会影响推送服务(注意:必须是用腾讯云内部账号来开通后付费)。
例如:服务版本为体验版的应用,日联网设备超过1000后推送服务会被停止,付费后立即恢复(设备注册、账号和标签绑定服务不受影响)。
1.4 厂商通道抵达回执配置
国内不同厂商通道对抵达数据回执的支持程度不同, 华为、魅族通道抵达数据不能直接获取,需要开发者手动进行相应配置。详情参考 腾讯移动推送-厂商通道抵达回执获取指南
二、腾讯移动推送腾讯云版本各个服务接入点域名
接口请求地址与服务接入点一一对应,请选择与您的应用服务接入点对应的请求地址。
MSDK 5.13 及之前版本,使用以下域名:
MSDK 5.15 及之后版本,使用以下域名(注意不需要带 https:// 前缀):
集群名称 | host(不区分注册和统计) |
---|---|
广州 | tpns.tencent.com |
上海 | tpns.sh.tencent.com |
香港 | tpns.hk.tencent.com |
新加坡 | tpns.sgp.tencent.com |
如果以上配置不做的话,TPNS SDK 默认连接广州集群(当前新申请的应用在管理端默认都是上海集群,这样管理端数据和 SDK 默认集群不匹配,推送是有问题的)
如何确认应用的集群
登录 腾讯移动推送腾讯云页面 后可以看到您的应用对应的集群
三、Android工程配置
3.1 AndroidManifest.xml 配置
<application>
<!-- 应用的其它配置 -->
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
<!-- 【必须】 腾讯移动推送默认通知 -->
<activity
android:name="com.tencent.android.tpush.TpnsActivity"
android:exported="true"
android:theme="@android:style/Theme.Translucent.NoTitleBar" >
<intent-filter>
<!-- 【必须】 【注意】${applicationId} 修改为对应当前APP包名-->
<data
android:host="${applicationId}"
android:scheme="tpns" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<!-- MSDK 5.30.001 版本移除以下两个节点 -->
<!-- 以下两个节点用于覆盖,原因:oppo渠道包未适配target api 31 -->
<service
android:name="com.heytap.mcssdk.PushService"
android:exported="true"
android:permission="com.coloros.mcs.permission.SEND_MCS_MESSAGE"
tools:node="replace" >
<intent-filter>
<action android:name="com.coloros.mcs.action.RECEIVE_MCS_MESSAGE" />
</intent-filter>
</service>
<service
android:name="com.heytap.mcssdk.AppPushService"
android:exported="true"
android:permission="com.heytap.mcs.permission.SEND_MCS_MESSAGE"
tools:node="replace" >
<intent-filter>
<action android:name="com.heytap.mcs.action.RECEIVE_MCS_MESSAGE" />
</intent-filter>
</service>
<!-- MSDK 5.30.001 版本移除以上两个节点 -->
<!-- MSDK 5.30.001 版本新增以下两个节点 -->
<service
android:name="com.heytap.msp.push.service.CompatibleDataMessageCallbackService"
android:permission="com.coloros.mcs.permission.SEND_MCS_MESSAGE">
<intent-filter>
<action android:name="com.coloros.mcs.action.RECEIVE_MCS_MESSAGE"/>
</intent-filter>
</service>
<service
android:name="com.heytap.msp.push.service.DataMessageCallbackService"
android:permission="com.heytap.mcs.permission.SEND_PUSH_MESSAGE">
<intent-filter>
<action android:name="com.heytap.mcs.action.RECEIVE_MCS_MESSAGE"/>
<action android:name="com.heytap.msp.push.RECEIVE_MCS_MESSAGE"/>
</intent-filter>
</service>
<!-- MSDK 5.30.001 版本新增以上两个节点 -->
<!-- 【注意】InnerTpnsActivity 配置于 MSDKV5.22.000(TPNS Android 1.3.1.1) 版本开始新增,其中 ${applicationId} 替换成 “应用包名” -->
<activity
android:name="com.tencent.android.tpush.InnerTpnsActivity"
android:exported="false"
android:launchMode="singleInstance"
android:theme="@android:style/Theme.Translucent.NoTitleBar">
<intent-filter>
<!-- 【必须】 【注意】请修改为 当前APP包名.OPEN_TPNS_ACTIVITY_V2 -->
<action android:name="${applicationId}.OPEN_TPNS_ACTIVITY_V2" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<!-- 【必须】 【注意】${applicationId} 修改为对应当前APP包名-->
<data
android:host="${applicationId}"
android:scheme="stpns" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action" />
</intent-filter>
</activity>
<!-- 【注意】InnerTpnsActivity 配置于 MSDKV5.22.000(TPNS Android 1.3.1.1) 版本开始新增,其中 ${applicationId} 替换成 “应用包名” -->
<!-- 【必须】 腾讯移动推送receiver广播接收,MSDKV5.22.000(TPNS Android 1.3.1.1) 版本开始 XGPushReceiver 配置如下 -->
<receiver
android:name="com.tencent.android.tpush.XGPushReceiver"
android:exported="false"
android:process=":xg_vip_service">
<intent-filter android:priority="0x7fffffff">
<!-- 【必须】 信鸽SDK的内部广播 -->
<action android:name="com.tencent.android.xg.vip.action.SDK" />
<action android:name="com.tencent.android.xg.vip.action.INTERNAL_PUSH_MESSAGE" />
<action android:name="com.tencent.android.xg.vip.action.ACTION_SDK_KEEPALIVE" />
</intent-filter>
</receiver>
<!-- 【必须】 腾讯移动推送receiver广播接收,MSDKV5.22.000(TPNS Android 1.3.1.1) 之前版本 XGPushReceiver 配置如下 -->
<receiver
android:name="com.tencent.android.tpush.XGPushReceiver"
android:process=":xg_vip_service">
<intent-filter android:priority="0x7fffffff">
<!-- 【必须】 腾讯移动推送SDK的内部广播 -->
<action android:name="com.tencent.android.xg.vip.action.SDK" />
<action android:name="com.tencent.android.xg.vip.action.INTERNAL_PUSH_MESSAGE" />
<action android:name="com.tencent.android.xg.vip.action.ACTION_SDK_KEEPALIVE" />
</intent-filter>
</receiver>
<!-- 【必须】 腾讯移动推送service -->
<service
android:name="com.tencent.android.tpush.service.XGVipPushService"
android:persistent="true"
android:process=":xg_vip_service"></service>
<!-- 【必须】 通知service,其中android:name部分要改为当前包名 -->
<service android:name="com.tencent.android.tpush.rpc.XGRemoteService"
android:exported="false">
<intent-filter>
<!-- 【必须】 请修改为当前APP名包.XGVIP_PUSH_ACTION -->
<action android:name="${applicationId}.XGVIP_PUSH_ACTION" />
</intent-filter>
</service>
<!-- 【必须】 【注意】authorities修改为 包名.XGVIP_PUSH_AUTH -->
<provider
android:name="com.tencent.android.tpush.XGPushProvider"
android:authorities="${applicationId}.XGVIP_PUSH_AUTH"
android:enabled="false"
android:exported="false"
tools:replace="android:authorities" />
<!-- 【必须】 【注意】authorities修改为 包名.TPUSH_PROVIDER -->
<provider
android:name="com.tencent.android.tpush.SettingsContentProvider"
android:authorities="${applicationId}.TPUSH_PROVIDER" />
<!-- 【可选】用于增强保活能力 -->
<provider
android:name="com.tencent.android.tpush.XGVipPushKAProvider"
android:authorities="${applicationId}.AUTH_XGPUSH_KEEPALIVE"
android:exported="true" />
<!-- 【可选】APP实现的Receiver,用于接收消息透传和操作结果的回调,请根据需要添加 -->
<!-- YOUR_PACKAGE_PATH.CustomPushReceiver需要改为自己的Receiver: -->
<receiver
android:name="com.tencent.gcloud.msdk.push.MSDKXGPushReceiver"
android:exported="false">
<intent-filter>
<!-- 接收消息透传 -->
<action android:name="com.tencent.android.xg.vip.action.PUSH_MESSAGE" />
<!-- 监听注册、反注册、设置/删除标签、通知被点击等处理结果 -->
<action android:name="com.tencent.android.xg.vip.action.FEEDBACK" />
</intent-filter>
</receiver>
<!-- MQTT START-->
<service android:exported="false"
android:process=":xg_vip_service"
android:name="com.tencent.bigdata.mqttchannel.services.MqttService" />
<!--【注意】authorities修改为 包名.XG_SETTINGS_PROVIDER, 如demo的包名为:com.tencent.android.xg.cloud.demo -->
<provider
android:exported="false"
android:name="com.tencent.tpns.baseapi.base.SettingsContentProvider"
android:authorities="${applicationId}.XG_SETTINGS_PROVIDER" />
<!-- MQTT END-->
<!--XG_V2_ACCESS_ID 和 XG_V2_ACCESS_KEY 已经统一到 MSDKConfig.ini 文件配置-->
<!-- 其他安卓组件-->
<!-- 接入点配置:如果您的应用服务接入点为广州集群,SDK 默认实现该配置。 -->
<!-- 如果您的应用服务接入点为上海、新加坡或中国香港,请按照下文步骤完成其他服务接入点域名配置,否则会导致注册推送服务失败并返回-502或1008003错误码。-->
<meta-data
android:name="XG_SERVER_SUFFIX"
android:value="其他服务接入点域名" />
<!-- 其他服务接入点域名如下: -->
<!-- 上海:tpns.sh.tencent.com -->
<!-- 新加坡:tpns.sgp.tencent.com -->
<!-- 中国香港:tpns.hk.tencent.com -->
<!-- <meta-data -->
<!-- android:name="XG_GUID_SERVER" -->
<!-- android:value="${XG_GUID_SERVER}" /> -->
<!-- <meta-data -->
<!-- android:name="XG_STAT_SERVER" -->
<!-- android:value="${XG_STAT_SERVER}" /> -->
<!-- <meta-data -->
<!-- android:name="XG_LOG_SERVER" -->
<!-- android:value="${XG_LOG_SERVER}" /> -->
<!-- 如果未做以下配置,在【旧版信鸽】和【腾讯移动推送】两个平台上同时推送时,可能会出现重复消息。
如果您的应用确定不再使用【旧版信鸽】进行推送,可忽略配置。-->
<meta-data
android:name="XG_OLD_ACCESS_ID"
android:value="xxxxxxxxx" />
<!-- huawei appid 配置-->
<meta-data tools:replace="android:value"
android:name="com.huawei.hms.client.appid"
android:value="{HUAWEI_APPID}" />
</application>
<!-- 【必须】 腾讯移动推送SDK5.0版本所需权限 -->
<permission
android:name="${applicationId}.permission.XGPUSH_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="${applicationId}.permission.XGPUSH_RECEIVE" />
<!-- 【必须】 腾讯移动推送SDK所需权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- 【常用】 腾讯移动推送SDK所需权限 -->
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" /> <!-- 华为自定义权限 -->
<uses-permission android:name="com.vivo.notification.permission.BADGE_ICON" /> <!-- VIVO 自定义权限 -->
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RESTART_PACKAGES" />
<uses-permission android:name="android.permission.GET_TASKS" />
[info] 未使用 Gradle 编译的情况,
${applicationId}
需要替换为游戏的包名
3.2 渠道信息配置
在工程的 assets/MSDKConfig.ini 文件中添加以下配置
[TPNS 调试配置]
MSDK_DEBUG = 1
MSDK_DEBUG_CHANNEL = XG
[TPNS 渠道配置]
# 腾讯移动推送接入点配置,需替换为您的应用对应的接入点,删除该配置则默认 TPNS SDK 使用广州接入点
XG_HOST = tpns.sh.tencent.com
# 仅在 MSDK5.13 及之前版本需要以下三个配置
XG_PORT = 0
XG_STAT_HOST = https://stat.tpns.sh.tencent.com
XG_STAT_PORT = 0
# 仅在 MSDK5.13 及之前版本需要以上三个配置
# TPNS Android AccessId AccessKey配置
XG_ACCESS_ID_ANDROID = {YOUR_XG_ACCESS_ID}
XG_ACCESS_KEY_ANDROID = {YOUR_XG_ACCESS_KEY}
# TPNS 是否开启厂商通道
XG_OTHER_ENABLE = 1
# TPNS XIAOMI 厂商渠道配置
XG_XIAOMI_ENABLE = 1
XG_XIAOMI_APP_ID = {YOUR_XG_XIAOMI_APP_ID}
XG_XIAOMI_APP_KEY = {YOUR_XG_XIAOMI_APP_KEY}
# TPNS HUAWEI 厂商渠道配置
XG_HUAWEI_ENABLE = 1
# TPNS 魅族 厂商渠道配置
XG_FLYME_ENABLE = 1
XG_FLYME_APP_ID = {YOUR_XG_FLYME_APP_ID}
XG_FLYME_APP_KEY = {YOUR_XG_FLYME_APP_KEY}
# TPNS OPPO 厂商渠道配置
XG_OPPO_ENABLE = 1
# 注意这里填入的是 Oppo 的 AppKey,不是 AppId
XG_OPPO_APP_ID = {YOUR_XG_OPPO_APP_KEY}
# 注意这里填入的是 Oppo 的 AppSecret,不是 AppKey
XG_OPPO_APP_KEY = {YOUR_XG_OPPO_APP_SECRET}
[info]注意:
1、{MSDK_DEBUG}
1 表示打开调试模式,0 表示关闭调试模式
2、{MSDK_DEBUG_CHANNEL}
此开关设置为 XG,表示开启 XG 调试,仅当{MSDK_DEBUG}
为1时,此开关生效,在同一配置文件中
3、腾讯云版本升级后,支持华为、小米、魅族和OPPO的厂商通道。业务需要自行申请各个通道的app id和app key,并将相应的结果填到腾讯移动推送腾讯云版本的管理端和客户端 ini 配置。开通不同厂商推送通道要求不一致,以下厂商需要开发者额外在厂商开放平台进行配置:
华为推送通道的开通步骤,详情参考 腾讯移动推送-在华为推送平台配置应用
小米推送通道的开通,需要在小米开放平台开启应用消息推送服务,详情参考 腾讯移动推送-小米通道接入操作步骤
4、腾讯移动推送接入点配置,广州域名为 https://api.tpns.tencent.com 。
5、MSDK 5.15 及之后版本,TPNS 接入域名有改动,请参考 TPNS 接入点域名,同时删除三个配置:XG_PORT、XG_STAT_HOST、XG_STAT_PORT
6、MSDK 5.23.002 版本开始,去除了华为、小米、vivo 厂商渠道;MSDK 5.23.003 版本开始,去除了魅族厂商渠道。
7、MSDK 5.30.000 版本开始,恢复厂商推送渠道。
四、iOS 工程配置
4.1 Xcode 工程配置文件 info.plist
在工程配置和后台模式中打开推送,如下图
4.2 系统库依赖
- XGMTACloud.framework
- CoreTelephony.framework
- SystemConfiguration.framework
- UserNotifications.framework (Status 修改为:
Optional
) - libXG-SDK-Cloud.a
- libz.tbd
- CoreData.framework
- CFNetwork.framework
- libc++.tbd
4.3 渠道信息配置
# TPNS iOS AccessId AccessKey配置
XG_ACCESS_ID_IOS = {YOUR_XG_ACCESS_ID}
XG_ACCESS_KEY_IOS = {YOUR_XG_ACCESS_KEY}
# MSDK 5.13 版本,上海集群需要将 XG_HOST 改成 https://api.tpns.sh.tencent.com
# MSDK 5.15 版本开始,腾讯移动推送接入点配置,需替换为您的应用对应的接入点,删除该配置则默认 TPNS SDK 使用广州接入点
XG_HOST = tpns.sh.tencent.com
# 仅在 MSDK5.13 及之前版本需要以下三个("XG_PORT"、“XG_STAT_HOST”、“XG_STAT_PORT”)配置
# 如果未做以下配置,在【旧版信鸽】和【腾讯移动推送】两个平台上同时推送时,可能会出现重复消息。
# 如果您的应用确定不再使用【旧版信鸽】进行推送,可忽略配置。
XG_PORT = 0
XG_STAT_HOST = https://stat.tpns.sh.tencent.com
XG_STAT_PORT = 0
# 如果您使用MSDK5.18以及之后的版本,可忽略“XG_FREE_ACCESS_ID_IOS”配置
XG_FREE_ACCESS_ID_IOS = {YOUR_OLD_XG_ACCESS_ID_IOS}
# TPNS iOS 前台推送开关,默认关闭
XG_SHOW_FOREGROUND_ALERT = 0
[info]注意:
2、MSDK 5.13 版本,腾讯移动推送接入点配置,广州域名为 https://api.tpns.tencent.com 。上海集群需要将 XG_HOST 改成 https://api.tpns.sh.tencent.com 。
1、MSDK 5.15 及之后版本,TPNS 接入域名有改动,请参考 TPNS 接入点域名,同时删除三个配置:XG_PORT、XG_STAT_HOST、XG_STAT_PORT
4.4 通知服务扩展插件配置(统计抵达必备插件)
[info] MSDK 仅携带 TPNS 扩展库,需要游戏业务集成接入,具体接入请参考 TPNS 指引文档:通知服务扩展的使用说明,接口人:腾讯云助手(cloud IT support)。
1)简介
为了精准统计消息抵达率和接收富媒体消息,TPNS 提供了 Service Extension 接口,可供客户端调用,从而可以监听消息的到达和接收富媒体消息,您可以按以下指引使用此功能。
集成此插件的统计效果:
未集成此插件的统计效果:
2)TPNS 统计上报接口
报推送消息回执,此接口的目的是统计推送消息是否抵达终端。
/**
@brief 腾讯移动推送处理抵达到终端的消息,即消息回执
@param request 推送请求
@param appID 腾讯移动推送应用ID
@param appKey 腾讯移动推送应用Key
@param handler 处理消息的回调,回调方法中处理关联的富媒体文件
*/
- (void)handleNotificationRequest:(nonnull UNNotificationRequest *)request appID:(uint32_t)appID appKey:(nonnull NSString *)appKey contentHandler:(nullable void(^)( NSArray <UNNotificationAttachment *>* _Nullable attachments, NSError * _Nullable error))handler;
3)参数说明
- request:推送请求。
- appID:腾讯移动推送应用 ID。
- handler:处理消息的回执,回调方法中处理关联的富媒体文件。
4)使用说明
为了使用 extension SDK,操作步骤如下:
创建通知拓展 Target:
1、在 XCode 菜单栏,选择 File > New > Target。
2、进入 Target 页面,选择 Notification Service Extension, 单击【Next】。
3、输入 Product Name,单击【Finish】。
4、配置 Target,添加依赖库文件:libXGExtension.a, libz.tbd, libsqlite3.tbd。
5、调用 TPNS 统计上报接口,示例代码如下:
说明:如果您的应用不是广州集群,请按照示例代码配置对应集群的统计域名。
- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler {
self.contentHandler = contentHandler;
self.bestAttemptContent = [request.content mutableCopy];
///上海集群域名配置
//[XGExtension defaultManager].reportHost = @"https://stat.tpns.sh.tencent.com";
///香港集群域名配置
//[XGExtension defaultManager].reportHost = @"https://stat.tpns.hk.tencent.com";
/// 新加坡集群域名配置
//[XGExtension defaultManager].reportHost = @"https://stat.tpns.sgp.tencent.com";
[[XGExtension defaultManager] handleNotificationRequest:request appID:<#appid#> appKey:<#appkey#> contentHandler:^(NSArray<UNNotificationAttachment *> * _Nullable attachments, NSError * _Nullable error) {
self.bestAttemptContent.attachments = attachments;
self.contentHandler(self.bestAttemptContent);
}];
}
五、常见问题
5.1 MSDK 腾讯移动推送异常排查步骤
- 检查 AccessID 和 AccessKey 配置( MSDKConfig.ini 文件)
- 检查 iOS 证书配置 或者 Android 配置
- 切忌重签名后安装测试
- 确认测试通过 腾讯移动推送管理端 还是 服务器调用腾讯移动推送接口 测试
- 在 Xcode 8 & iOS 10 中联调,需要开启 Push Capability
- 调用 MSDKPush 接口注册推送,并非 XGPush 原生接口
5.2 在海外接入点下,小米厂商渠道推送无法收到
按腾讯移动推送侧回复,海外接入点下,为了做数据合规,需要使用海外发行的小米设备进行测试,国内发行的小米设备只能在国内接入点下接收到推送。详情可咨询 @信鸽推送助手。
5.3 iOS 下注册时,报 APNS 请求 token 失败的错误,导致操作终止
此问题现象是由于 APNs 服务不稳定导致的,可尝试通过以下方式解决:
- 给手机插入 SIM 卡后使用4G网络测试。
- 卸载重装、重启 App、关机重启后测试。
- 打生产环境的包测试。
- 换别的 iOS 13 系统的手机测试 。
详情参考:iOS13 开发环境下,注册偶现不返回 DeviceToken?
5.4 在 UE4.23 及以上版本,编译 Android APK 报 minSdkVersion 设置过小的问题
MSDKXG 在 V5.12 版本升级了华为厂商渠道的库依赖
MSDKXG 的 AndroidManifest.xml 文件已经添加了如下配置来解决这个问题
<uses-sdk tools:overrideLibrary="com.huawei.hmf.tasks, com.huawei.android.hms.push, com.huawei.android.hms.openid, com.huawei.android.hms.base, com.huawei.hms.base.availableupdate, com.huawei.hms.stats, com.huawei.hms.base.ui, com.huawei.hms.base.device, com.huawei.hms.log, com.huawei.agconnect.core"/>
- 但是在 UE4.23 上这个配置未被识别,游戏可以在项目的根 AndroidManifest.xml 或者 APL.xml 文件中去手动添加配置来解决,APL 文件参考示例(以下配置包含了华为登录渠道的依赖):
<androidManifestUpdates> <addElements tag="manifest"> <uses-sdk tools:overrideLibrary="com.huawei.hmf.tasks,com.huawei.android.hms.hwid,com.huawei.android.hms.base,com.huawei.hms.base.availableupdate,com.huawei.hms.stats,com.huawei.hms.base.ui,com.huawei.hms.base.device,com.huawei.hms.log,com.huawei.agconnect.core,com.huawei.android.hms.push,com.huawei.android.hms.openid" tools:ignore="MultipleUsesSdk" xmlns:tools="http://schemas.android.com/tools"/> </addElements> </androidManifestUpdates>
5.5 iOS初始化注册只有在首次调用才有回调,注册成功之后,再次调用将没有回调。
自 MSDK5.13 版本开始,包括5.13版本public static void RegisterPush(string channel, string account="")
注册push接口,在XG渠道,只有在第一次调用的时候才会有回调,后面的调用没有回调,以上是腾讯移动推送-SDK的设计逻辑。MSDK当前是参照腾讯移动推送建议进行处理
5.6 调用 RegisterPush 接口报错,Huawei class not found,agconnect-services.json
MSDKXG 在 V5.15 版本将华为厂商渠道的 SDK 升级到 V5 版本,该版本的华为厂商渠道需要新增华为推送配置文件
需要在工程 assets 目录下添加 agconnect-services.json 文件来解决这个问题
从 华为开放平台 进入【我的项目】> 选择项目 > 【项目设置】,下载华为应用最新配置文件 agconnect-services.json 文件并 copy 到工程 assets 目录下。
5.7 TPNS SDK "获取应用安装列表"问题
"获取应用安装列表"问题在 TPNS SDK 的1.2.6.0版本修复
当前可以通过在 AndroidManifest.xml 文件内添加以下两个节点来规避此问题:
<provider
tools:node="replace"
android:name="com.tencent.android.tpush.XGPushProvider"
android:authorities="${applicationId}.XGVIP_PUSH_AUTH"
android:exported="false"
android:enabled="false"/>
<meta-data
android:name="XG_SERVICE_PULL_UP_OFF"
android:value="true" />
All rights reserved.