常见问题

Android

收不到离线推送怎么排查?

1.特殊情况排查


OPPO 手机

OPPO 手机收不到推送一般有以下几种情况:
按照 OPPO 推送官网要求,在 Android 8.0 及以上系统版本的 OPPO 手机上必须配置 ChannelID,否则推送消息无法展示。配置方法可以参见 setAndroidOPPOChannelID
OPPO 安装应用通知栏显示默认关闭,需要确认下开关状态。

Google FCM

收不到推送需要确认下 Chat 控制台是否正确上传证书。排查路径参见文档 厂商配置 > Google FCM,对照示意图看下是否添加正确。

小米和 vivo

小米和 vivo:需要上架应用市场后,才可以通过厂商通道进行下发。一般会提示:应用在黑名单中,禁止发送消息。或者,该 App 已关闭 push 通道。
发送消息为自定义消息
自定义消息的离线推送和普通消息不太一样,自定义消息的内容我们无法解析,不能确定推送的内容,所以默认不推送,如果您有推送需求,需要您在 sendMessage 的时候设置 offlinePushInfo 的 desc 字段,推送的时候会默认展示 desc 信息。
设备通知栏设置影响
离线推送的直观表现就是通知栏提示,所以同其他通知一样受设备通知相关设置的影响,以华为为例:
手机设置 > 通知 > 锁屏通知 > 隐藏或者不显示通知,会影响锁屏状态下离线推送通知显示。
手机设置 > 通知 > 更多通知设置 > 状态栏显示通知图标,会影响状态栏下离线推送通知的图标显示。
手机设置 > 通知 > 应用的通知管理 > 允许通知,打开关闭会直接影响离线推送通知显示。
手机设置 > 通知 > 应用的通知管理 > 通知铃声手机设置 > 通知 > 应用的通知管理 > 静默通知,会影响离线推送通知铃音的效果。
消息分类
厂商推送都有消息分类机制,不同类型也会有不同的推送策略,详情请参见 推送消息分类
厂商特性
离线推送依赖厂商能力,一些简单的字符可能会被厂商过滤不能透传推送,建议使用有意义的内容进行推送。

2.自助推送排查工具

设备推送插件接入是否正常
在 Chat 控制台通过 离线测试工具 自测下是否可以正常推送。
推送链路排查
使用 排查工具 查看推送全链路推送详情。

跳转界面不成功怎么排查?

1.点击跳转配置检查

详细参见 自定义点击跳转,检查:
控制台配置点击后续动作按如下配置,选择打开应用内指定界面,插件用户会默认填写跳转参数,参数是否被修改。
注册和回调处理点击事件,注册时机建议放在应用 Application 的 oncreate() 函数中,需要放在应用生命周期的靠前位置。
点击回调处是否正确处理跳转逻辑。

2.设备系统权限限制

应用进程不存在,单击通知栏跳转到应用界面,需要将应用从后台拉取到前台,部分厂商系统会去检查 App 是否开启了后台自启动悬浮窗权限,不开启系统侧会拦截处理导致失败。
不同厂商、同一厂商不同 Android 版本,其对于应用开放的权限以及权限名称会存在不一致。经测试,小米6只需要开启后台弹出界面权限,而红米需要同时打开后台弹出界面和显示悬浮窗权限,需要针对不同厂商不同处理。

3.推送链路排查

使用 排查工具 查看推送全链路推送详情。

海外推送指南

1. 海外离线推送支持的厂商有 FCM、华为、OPPO 和 APNS。
2. FCM 通道必备充分条件是:设备可以访问海外网站、设备有安装支持 GMS 服务、成功集成 TIMPush。注意:国内设备大部分没有安装 GMS 服务,无法支持 FCM 推送。

其他问题

支持向三星、中兴、传音、坚果、海信、索尼等手机推送吗?
在线推送支持所有机型,包括三星、中兴、传音、坚果、海信、索尼等。
华为
华为推送证书 ID <= 11344 ,使用华为推送 v2 版本接口,不支持触达和单击回执,如需要统计数据功能,请重新生成更新证书 ID 。
AndroidInfo.ExtAsHuaweiIntentParam,传“1”表示将透传内容 Ext 作为 Intent 的参数,“0”表示将透传内容 Ext 作为 Action 参数。restapi 使用“1”暂时不支持点击事件统计。
数据统计功能
只会记录最后一个登录设备的推送数据详情,不支持多端登录场景。
Debug 版本的 App 功能正常,Release 版本的 App 功能出现异常
出现此问题很大概率是混淆导致的,可以添加如下混淆规则:
-keep class com.tencent.qcloud.** { *; }
-keep class com.tencent.timpush.** { *; }
解决接入 TIMPush 和其他友商产生冲突问题
原因是应用程序自身集成或者依赖的第三方推送客户端,与 TIMPush 中的第三方客户端产生冲突,需要仅保留一个使用。具体方法请参见:TIMPush 集成冲突解决

iOS

普通消息为什么收不到离线推送?

首先,请检查下 App 的运行环境和证书的环境是否一致,如果不一致,收不到离线推送。
其次,检查下 App 和证书的环境是否为生产环境。如果是开发环境,向苹果申请 deviceToken 可能会失败,生产环境暂时没有发现这个问题,请切换到生产环境测试。

自定义消息为什么收不到离线推送?

自定义消息的离线推送和普通消息不太一样,自定义消息的内容我们无法解析,不能确定推送的内容,所以默认不推送,如果您有推送需求,需要您在 sendMessage 的时候设置 offlinePushInfodesc字段,推送的时候会默认展示 desc 信息。

如何关闭离线推送消息的接收?

如果您想关闭离线推送消息的接收,可以通过设置 setAPNS 接口的 config 参数为 nil 来实现。该功能从5.6.1200 版本开始支持。

收不到推送,且后台报错 bad devicetoken。

Apple 的 deviceToken 与当前编译环境有关,请检查:
1. 接入流程中 配置推送参数 的 businessID 是否是对应环境的证书 ID。
2. 控制台创建证书检查:
生产环境证书:上传的证书类型为 Apple Push Notification service SSL (Sandbox & Production),并在Archive 出Release 包后进行测试。注意:不可在Xcode 测试。
开发环境证书:您需要 Archive 出 release 包后进行测试,创建选择正确证书即可。

iOS 开发环境下,注册偶现不返回 deviceToken 或提示 APNs 请求 token 失败?

此问题现象是由于 APNs 服务不稳定导致的,可尝试通过以下方式解决:
1. 给手机插入 SIM 卡后使用4G网络测试。
2. 卸载重装、重启 App、关机重启后测试。
3. 打生产环境的包测试。
4. 更换其它 iOS 系统的手机测试。

iOS 没有收到触达回执

1. 上报推送触达数据,需要开启控制台开关来支持 iOS 10 的 Extension 功能,详情请参见 统计推送抵达率
2. 为保证上报数据在一些异常情况下不丢失,iOS 推送数据的上报会在下次登录时候才上报,可能会有滞后,请尝试重新登录。

iOS 证书过期

在 Chat 控制台单击编辑对应证书,更新下 p12 证书即可。需要注意的是:请勿删除证书重新创建,重新创建证书 ID 会变化,需要发版本支持更新。

iOS 统计上报功能

上报推送触达数据,需要开启此开关来支持 iOS 10 的 Extension 功能,详情请参见 统计推送抵达率

APNS、VOIP 和 LiveActivity 区别

特性
APNs
VoIP
LiveActivity
使用场景
发送通知提醒用户
音视频通话
显示实时更新的动态内容
生命周期
跟随通知栏
跟随通知栏
持续到事件结束
SDK 集成
集成 TIMPush
集成 ActivityKit 和 IMSDK
使用方式
申请 APNs 推送证书,端上上报 token,后台校验和触发
申请 VoIP 推送证书,端上上报 token,后台校验和触发
应用可主动更新
申请推送 P8 证书,端上上报 token,后台校验和触发
推送 token
设备级别
设备级别
与特定实时活动相对应,一台手机可同时创建多个实时活动
限制
通知内容有限
需要 VoIP 证书和 iOS Callkit
iOS 16 以上支持
实际效果




其他问题

收不到推送,插件费用到期

推送插件试用或购买到期后,将自动停止提供推送服务(包括普通消息离线推送、全员/标签推送等服务)。为避免影响您业务正常使用,请提前 购买/续费

关于 Push SDK 包体积

如果您要求集成包体积更低,并且希望单独使用 Push 推送服务不集成 Chat SDK,您可以 点击进入交流群 直接咨询。

交流与反馈

欢迎加入腾讯云即时通信 Chat 社群进行技术交流和反馈。