文档中心>即时通信 IM

TIMPush 集成冲突解决

最近更新时间:2024-10-12 21:13:01

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

根本原因

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

解决方法

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

步骤1

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

步骤2

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

1. 去掉友商冲突的对应的厂商包;
2. 通过 TIMPush 接口 getPushToken 获取到推送的 token,然后调用友商接口共享获取 token 即可。实现如下:
TIMPushManager.getInstance().callExperimentalAPI("getPushToken", null, new TIMPushCallback() { @Override public void onSuccess(Object data) { Log.d(TAG, "getPushToken success: " + data);
// 共享 token } @Override public void onError(int errCode, String errMsg, Object data) { Log.e(TAG, "getPushToken errorCode = " + errCode + ", errMsg = " + errMsg); } });

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

1. 去掉产生冲突的 TIMPush 的厂商包;
2. 通过友商的接口获取到推送的 token,然后调用接口 setPushToken 将 token 设置给 TIMPush。实现如下:
try { JSONObject param = new JSONObject(); param.put("businessID", 1111); param.put("token", "token"); TIMPushManager.getInstance().callExperimentalAPI("setPushToken", param.toString(), new TIMPushCallback() { @Override public void onSuccess(Object data) { Log.d(TAG, "setPushToken success"); } @Override public void onError(int errCode, String errMsg, Object data) { Log.e(TAG, "setPushToken errorCode = " + errCode + ", errMsg = " + errMsg); } }); } catch (Exception e) { Log.e(TAG, "setPushToken e = " + e); }