Как настроить sdk-клиент parse для получения push-уведомлений в Unity 3D - PullRequest
0 голосов
/ 12 июня 2019

Я изменил некоторый код и скомпилировал последний SDK для синтаксического анализа для плагина .net для единства.Теперь я хочу настроить клиентское приложение Unity для получения push-уведомлений (особенно Android).Я не знаю, как его настроить, я только что нашел какой-то код для получения или отображения уведомления, а не о том, как его настроить, как все разрешения или куда поместить ключ облачного сообщения.Если кто-то может мне помочь?спасибо

1 Ответ

0 голосов
/ 12 июля 2019

да, конечно. Я нашел что-то странное, у меня есть два приемника сообщений: firebase и parse, приемник firebase работает, когда приложение находится на переднем плане `

    //Events subscription
    private void Awake()
    {
        instance  = this;
        Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived;
        ParsePush.ParsePushNotificationReceived += OnMessageReceiveByParse;
        Firebase.Messaging.FirebaseMessaging.MessageReceived += 
        OnMessageReceiveByFirebase;
    }

    // method call when firebase message received
    void OnMessageReceiveByFirebase(object 
sender,Firebase.Messaging.MessageReceivedEventArgs args)
    {
        Debug.Log("Message from firebase : " + args.Message);
    }

    // method call when parse message received
    void OnMessageReceiveByParse(object sender, ParsePushNotificationEventArgs args)
    {

        Debug.Log("Message from Parse Server : " + args.Payload);
    }

    // parse guide receiver implementation
    void cool(object sender, ParsePushNotificationEventArgs args)
    {
#if UNITY_ANDROID
        AndroidJavaClass parseUnityHelper = new AndroidJavaClass("com.parse.ParsePushUnityHelper");
        AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");

        // Call default behavior.
        parseUnityHelper.CallStatic("handleParsePushNotificationReceived", currentActivity, args.StringPayload);
#endif
    }

`

Я использую android studio для отладки при запуске приложения, всегда отображается ошибка, я использую классы parse sdk, не скомпилированные dll: этот класс не существует в моем sdk:

    (Filename: ./Runtime/Export/Debug.bindings.h Line: 45)
2019-07-12 09:12:33.968 14620-14663/? E/Unity: AndroidJavaException: java.lang.ClassNotFoundException: com.parse.ParsePushUnityHelper
    java.lang.ClassNotFoundException: com.parse.ParsePushUnityHelper
        at java.lang.Class.classForName(Native Method)
        at java.lang.Class.forName(Class.java:453)
        at java.lang.Class.forName(Class.java:378)
        at com.unity3d.player.UnityPlayer.nativePause(Native Method)
        at com.unity3d.player.UnityPlayer.l(Unknown Source:0)
        at com.unity3d.player.UnityPlayer$22.run(Unknown Source:2)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:193)
        at com.unity3d.player.UnityPlayer$e.run(Unknown Source:32)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "com.parse.ParsePushUnityHelper" on path: DexPathList[[zip file "/data/app/com.wmg.mascothunt-bUi8a5Uz_-d12IhMoYJuOQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.wmg.mascothunt-bUi8a5Uz_-d12IhMoYJuOQ==/lib/arm, /data/app/com.wmg.mascothunt-bUi8a5Uz_-d12IhMoYJuOQ==/base.a
...