本文描述了如何解决接入 TIMPush 和其他友商产生冲突问题。
根本原因
发生客户端冲突的根本原因是:应用程序自身集成或者依赖的第三方推送客户端,与 TIMPush 中的第三方客户端产生冲突。
解决方法
如果存在上述情况,您可以选择以下方式兼容使用 TIMPush。
步骤1
步骤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); }