Android
收不到离线推送怎么排查?
特殊情况排查
OPPO 手机
OPPO 手机收不到推送一般有以下几种情况:
OPPO 安装应用通知栏显示默认关闭,需要确认下开关状态。
Google FCM
收不到推送需要确认下 IM 控制台是否正确上传证书。排查路径参见文档 IM 控制台配置 > Google FCM,对照示意图看下是否添加正确。 小米和 vivo
小米和 vivo:需要上架应用市场后,才可以通过厂商通道进行下发。一般会提示:应用在黑名单中,禁止发送消息。或者,该 App 已关闭 push 通道。
发送消息为自定义消息
设备通知栏设置影响
离线推送的直观表现就是通知栏提示,所以同其他通知一样受设备通知相关设置的影响,以华为为例:
手机设置 > 通知 > 锁屏通知 > 隐藏或者不显示通知,会影响锁屏状态下离线推送通知显示。
手机设置 > 通知 > 更多通知设置 > 状态栏显示通知图标,会影响状态栏下离线推送通知的图标显示。
手机设置 > 通知 > 应用的通知管理 > 允许通知,打开关闭会直接影响离线推送通知显示。
手机设置 > 通知 > 应用的通知管理 > 通知铃声和手机设置 > 通知 > 应用的通知管理 > 静默通知,会影响离线推送通知铃音的效果。
消息分类
厂商推送都有消息分类机制,不同类型也会有不同的推送策略,详情请参见 推送消息分类。 厂商特性
离线推送依赖厂商能力,一些简单的字符可能会被厂商过滤不能透传推送,建议使用有意义的内容进行推送。
自助推送排查工具
设备推送插件接入是否正常
在 IM 控制台通过 离线测试工具 自测下是否可以正常推送。 推送链路排查
跳转界面不成功怎么排查?
点击跳转配置检查
控制台配置点击后续动作按如下配置,选择打开应用内指定界面,插件用户会默认填写跳转参数,参数是否被修改。
注册和回调处理点击事件,注册时机建议放在应用 Application 的 oncreate() 函数中,需要放在应用生命周期的靠前位置。
点击回调处是否正确处理跳转逻辑。
设备系统权限限制
应用进程不存在,单击通知栏跳转到应用界面,需要将应用从后台拉取到前台,部分厂商系统会去检查 App 是否开启了后台自启动或悬浮窗权限,不开启系统侧会拦截处理导致失败。
不同厂商、同一厂商不同 Android 版本,其对于应用开放的权限以及权限名称会存在不一致。经测试,小米6只需要开启后台弹出界面权限,而红米需要同时打开后台弹出界面和显示悬浮窗权限,需要针对不同厂商不同处理。
推送链路排查
其他问题
华为
华为推送证书 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
可能会失败,生产环境暂时没有发现这个问题,请切换到生产环境测试。
自定义消息为什么收不到离线推送?
如何关闭离线推送消息的接收?
如果您想关闭离线推送消息的接收,可以通过设置 setAPNS 接口的 config
参数为 nil
来实现。该功能从5.6.1200 版本开始支持。 收不到推送,且后台报错 bad devicetoken。
如果使用的是 Release 环境编译,则 - application:didRegisterForRemoteNotificationsWithDeviceToken:
回调返回的是发布环境的 token,此时 businessID 需要设置生产环境的 证书 ID。 如果使用的是 Debug 环境编译,则 - application:didRegisterForRemoteNotificationsWithDeviceToken:
回调返回的是开发环境的 token,此时 businessID 需要设置开发环境的 证书 ID。 V2TIMAPNSConfig *confg = [[V2TIMAPNSConfig alloc] init];
/* 用户自己到苹果注册开发者证书,在开发者帐号中下载并生成证书(p12 文件),将生成的 p12 文件传到腾讯证书管理控制台,控制台会自动生成一个证书 ID,将证书 ID 传入以下 busiId 参数中。*/
//推送证书 ID
confg.businessID = sdkBusiId;
confg.token = self.deviceToken;
[[V2TIMManager sharedInstance] setAPNS:confg succ:^{
NSLog(@"%s, succ, %@", __func__, supportTPNS ? @"TPNS": @"APNS");
} fail:^(int code, NSString *msg) {
NSLog(@"%s, fail, %d, %@", __func__, code, msg);
}];
iOS 开发环境下,注册偶现不返回 deviceToken 或提示 APNs 请求 token 失败?
此问题现象是由于 APNs 服务不稳定导致的,可尝试通过以下方式解决:
1. 给手机插入 SIM 卡后使用4G网络测试。
2. 卸载重装、重启 App、关机重启后测试。
3. 打生产环境的包测试。
4. 更换其它 iOS 系统的手机测试。
iOS 没有收到触达回执
1. 上报推送触达数据,需要开启控制台开关来支持 iOS 10 的 Extension 功能,详情请参见 统计推送抵达率。 2. 为保证上报数据在一些异常情况下不丢失,iOS 推送数据的上报会在下次登录时候才上报,可能会有滞后,请尝试重新登录。
iOS 证书过期
在 IM 控制台单击编辑对应证书,更新下 p12 证书即可。需要注意的是:请勿删除证书重新创建,重新创建证书 ID 会变化,需要发版本支持更新。
iOS 统计上报功能
上报推送触达数据,需要开启此开关来支持 iOS 10 的 Extension 功能,详情请参见 统计推送抵达率。 其他问题
收不到推送,插件费用到期
推送插件试用或购买到期后,将自动停止提供推送服务(包括普通消息离线推送、全员/标签推送等服务)。为避免影响您业务正常使用,请提前 购买/续费。 提供推送接入方法对比
|
| 插件快速集成: 不再需要逐个厂商填写配置,控制台下载引入 json 配置文件,即可完成所有手机厂商的推送信息配置; 支持按需集成一个或者多个对应厂商的推送渠道包,更加满足合规要求; 不需要客户处理推送注册、token 上报、前后台状态上报等,接入后插件自动闭环; 不再需要关注和添加打点和上报逻辑,开启功能后插件自行上报和汇总,支持链路排查和指标统计等; 插件封装界面跳转、图标自定义等方法,直接使用即可; | 普通消息推送 全员标签推送 自定义界面跳转 推送自定义样式 设备推送状态查询 全链路排查工具 推送记录和指标统计分析 |
| 源码自行集成(不再支持维护,可能会存在推送失败、组件不适配等问题,待下架) | 普通消息推送 |
| 文档自行集成 | 普通消息推送 |
交流与反馈
本页内容是否解决了您的问题?