Lassen Sie uns über die Lösung sprechen, die Rongyun VIVO Push nicht springen kann

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.

  1. 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.

Ich denke du magst

Origin blog.51cto.com/15024061/2562499
Empfohlen
Rangfolge