目前即时通信 IM 已使用 移动推送 TPNS 提供的厂商 jar 包,您可参见文档 IM 离线推送(Android)替换相关依赖包即可解决该问题。
不管是 C2C 消息还是群消息,在以上步骤无法确认问题的时候,需要继续确认以下情况:
elem
添加到消息中了(发消息的时候需要检查addElement
的返回值)。true
。APNs
参考 离线推送(iOS) 说明文档进行以下确认:
确认是否正确上传证书到腾讯云控制台。
确认在登录成功后,是否成功上传 token 到腾讯云。
确认在上报 token 时,是否上报了正确的证书 ID。
确认是否正确上报了切前后台事件。
确认消息是否只有 TIMCustomElem
,且其中的 desc
属性是空的。
MsgRandom
等去重标记设为一样,导致被去重无法推送。
如果是群消息,是否设置了消息不提醒选项。
Android
参考 离线推送 说明文档进行以下确认:
确认是否正确上传了推送证书。
确认是否成功上报 token。
如果不是第三方离线推送(华为,小米,魅族),确认一下 QALService 进程是否存活,不存活的情况下确实会收不到离线推送,需要依赖系统的自启动权限。
存在多进程的情况下,是否只在主进程进行了 IM SDK 的初始化,如果不是,需要修改为只在主进程初始化。
如果是第三方离线推送,例如小米、华为,魅族等,可以先通过对应的第三方控制台直接推送消息,确认手机是否可以收到,如果收不到可能存在两种原因:
1)用户集成第三方离线推送有问题,请按照文档操作。
2)手机兼容问题,该手机本身不能很好的兼容该离线推送,例如部分华为手机无法接收到华为的离线推送。
如果是 OPPO 离线推送,请确认在即时通信控制台的 Android 推送证书处填入的是 MasterSecret 而不是 AppSecret。
不管是 APNs 推送还是 Android 上的离线推送,在以上步骤无法确认问题时,需要继续确认以下情况:
sendOnlineMessage
接口发送的在线消息,或者通过 REST API 推送的时候设置了 MsgLifeTime
为 0
。红包消息与 @ 消息类似,可以通过 TIMCustomElem
来实现。需要应用在 UI 上做相应的特殊处理,例如检查到当前消息为红包消息后,消息展示为红包的样式。
另外,红包消息作为重要消息,最好在发送消息的时候将其设置为高优先级消息,以最大程度保证消息在触达频率限制的情况下仍可以送达(目前群内消息默认限制频率40条/s, 单聊消息默认限制频率为5条/s)。
关于消息优先级相关的内容可以参考 消息优先级。
注意:红包消息的支付部分功能,需要应用自行集成相应的支付 SDK,IM SDK 暂不提供这部分功能。
一个简单的红包消息的构建过程如下(Android):
// 构建一条新的消息
TIMMessage msg = new TIMMessage();
try{
// 填充自定义的消息协议
JSONObject redPacket= new JSONObject();
redPacket.put("type", "RED_PACKET");
redPacket.put("amount", 2018);
redPacket.put("msg", "Happy new year!");
// 根据自己定义的协议构建自定义消息元素
TIMCustomElem customElem = new TIMCustomElem();
customElem.setDesc("red packet");
customElem.setData(redPacket.toString().getBytes("utf-8");
if(msg.addElement(customElem) != 0){
Log.e(TAG, "add custom elem failed");
return;
}
}catch(Exception e){
Log.e(TAG, "build custom elem failed");
return;
}
// 设置消息优先级为高优先级
msg.setPriority(TIMMessagePriority.High);
单聊消息及非直播群消息具备历史消息存储能力,您可以登录 即时通信 IM 控制台 修改相关配置。不同套餐包默认配置如下:
即时通信 IM 在控制台的 黑名单检查 管理中提供发送消息后展示发送成功功能,当启用该功能时被拉黑用户侧发消息后仍展示发送成功 (实际对方不会收到消息) 。停用本设置项,则被拉黑用户侧发消息后会提示失败,SDK 会收到 错误码 20007 。具体配置请参照文档 黑名单检查。
上传需要用户自己处理。如果使用存储服务私有读,需要 URL 签名确保有下载权限(预签名下载)。
即时通信 IM 客户端单聊/群聊消息,Web 端单聊/群聊消息及服务端单聊消息唯一标识分别对应 msg_id,msgID 及 msgKey。
各端不同类型消息唯一标识的规则不同,具体规则如下:
直播群(AVChatRoom)不支持发送 @ 消息,社群(Community)支持 @ 单个用户,不支持 @ALL。
本页内容是否解决了您的问题?