文档中心>即时通信 IM

TIMPush 集成冲突解决

最近更新时间:2024-04-15 14:57:51

我的收藏
本文描述了如何解决接入 TIMPush 和其他友商产生冲突问题。

根本原因

发生客户端冲突的根本原因是:应用程序自身集成或者依赖的第三方推送客户端,与 TIMPush 中的第三方客户端产生冲突。

解决方法

如果存在上述情况,您可以选择以下方式兼容使用 TIMPush。

步骤1

请先按照指引文档完成 TIMPush 接入 : 开通使用

步骤2

方式1:使用 TIMPush 的推送包,将 token 共享给友商:

1. 去掉友商冲突的对应的厂商包;
2. 通过 TIMPush 接口 getPushToken 获取到推送的 token,然后调用友商接口共享获取 token 即可。实现如下:
TUICore.callService(TUIConstants.TIMPush.SERVICE_NAME, TUIConstants.TIMPush.METHOD_GET_PUSH_TOKEN, null, new TUIServiceCallback() {
@Override
public void onServiceCallback(int errorCode, String errorMessage, Bundle bundle) {
if (errorCode == 0 && bundle != null) {
String token = (String) bundle.get("token");
Log.d(TAG, "getPushToken onServiceCallback data =" + token);
// 共享 token
}
}
});

方式2:使用友商的厂商推送包,将 token 回传给 TIMPush:

1. 去掉产生冲突的 TIMPush 的厂商包;
2. 通过友商的接口获取到推送的 token,然后调用接口 setPushToken 将 token 设置给 TIMPush。实现如下:
Map<String, Object> param = new HashMap<>();
param.put(TUIConstants.TIMPush.METHOD_PUSH_BUSSINESS_ID_KEY, 11111);
param.put(TUIConstants.TIMPush.METHOD_PUSH_TOKEN_KEY, "token");
TUICore.callService(TUIConstants.TIMPush.SERVICE_NAME, TUIConstants.TIMPush.METHOD_SET_PUSH_TOKEN, param, new TUIServiceCallback() {
@Override
public void onServiceCallback(int errorCode, String errorMessage, Bundle bundle) {
if (errorCode == 0 && bundle != null) {
String token = (String) bundle.get("token");
Log.d(TAG, "registerPush onServiceCallback data =" + token);
}
}
});