Lassen Sie uns über die Lösung sprechen, die Rongyun VIVO Push nicht springen kann
Bei der Integration des Rongyun SDK ist es unvermeidlich, Pushs zu erhalten. Um die Ankunftsrate sicherzustellen, werden die Hersteller-Pushs von Rongyun integriert. Nach der Integration wird ein Problem gefunden. Nachdem VIVO Push die Benachrichtigungsleiste erhalten hat, klicken Sie auf Ja Für diejenigen, die nicht springen konnten, wurde das Problem durch Rücksprache mit den technischen Studenten von Rongyun gelöst.
Das Folgende ist eine Lösung für dieses Problem, die hier als Referenz aufgezeichnet wird.
-
Zuerst müssen Sie VivoPushMessageReceiver kopieren und dann in der onNotificationMessageClicked-Methode erfassen.
public class MY extends VivoPushMessageReceiver { @Override public void onNotificationMessageClicked(Context context, UPSNotificationMessage message) { PushNotificationMessage pushNotificationMessage = transformVivoToPushMessage(message.getTitle(), message.getContent(), message.getParams()); if (pushNotificationMessage != null) { PushManager.getInstance().onNotificationMessageClicked(context, PushType.VIVO, pushNotificationMessage); } }
2. Die transformVivoToPushMessage-Methode kann meine Methode vollständig kopieren.
public static PushNotificationMessage transformVivoToPushMessage(String title, String content, Map<String, String> params) { if (params == null){ return null; } PushNotificationMessage pushNotificationMessage = null; String rc = params.get("rc"); if (rc != null) { try { JSONObject rcJson = new JSONObject(rc); pushNotificationMessage = new PushNotificationMessage(); pushNotificationMessage.setPushTitle(title); pushNotificationMessage.setPushContent(content); int conversationType = rcJson.optInt("conversationType"); pushNotificationMessage.setConversationType(RongPushClient.ConversationType.setValue(conversationType)); int sourceType = rcJson.optInt("sourceType"); pushNotificationMessage.setSourceType(getType(sourceType)); pushNotificationMessage.setSenderId(rcJson.optString("fromUserId")); pushNotificationMessage.setObjectName(rcJson.optString("objectName")); pushNotificationMessage.setPushId(rcJson.optString("id")); pushNotificationMessage.setToId(rcJson.optString("tId")); pushNotificationMessage.setTargetId(rcJson.optString("targetId")); String appData = params.get("appData"); if (appData != null) { pushNotificationMessage.setPushData(appData); } } catch (JSONException e) { RLog.e("PushUtils", "transformToPushMessage:" + e.getMessage()); pushNotificationMessage = null; } } return pushNotificationMessage; } public static PushNotificationMessage.PushSourceType getType(int type) { for (PushNotificationMessage.PushSourceType sourceType : PushNotificationMessage.PushSourceType.values()) { if (sourceType.ordinal() == type) { return sourceType; } } return PushNotificationMessage.PushSourceType.LOCAL_MESSAGE; }
3. Registrieren Sie abschließend den duplizierten VivoPushMessageReceiver in AndroidMainfest.