2017-07-18 2 views
0

Ich entwickelte meine App mit DevExtreme, einem Multiplattform-Tool basierend auf PhoneGap.Push-Benachrichtigungen mit FCM auf DevExtreme/Phonegap

Jetzt versuche ich, die Phonegap-Plugin-Push-Verwaltung Push-Benachrichtigungen zu verwenden.

Mein erstes, einfaches Ziel ist es, senden Sie & erhalten einige Benachrichtigungen von FCM (Firebase Cloud Messaging).

Ich bevorzuge es, mit Android zu starten, also stelle ich meine Android App auf FCM ein. Hier habe ich die Absender-ID genommen.

die Dokumentation Nach modifizierte ich die config.xml wie folgt:

<widget id="com.devexpress.apptemplate" version="1.0" versionCode="1"> 
    <name>ApplicationTemplate</name> 
    <description>Template</description> 
    <preference name="phonegap-version" value="cli-6.4.0" /> 
    <preference name="permissions" value="none" /> 
    <preference name="prerendered-icon" value="true" /> 
    <preference name="android-windowSoftInputMode" value="adjustPan" /> 
    <preference name="SplashScreen" value="splash" /> 
    <preference name="SplashScreenDelay" value="60000" /> 
    <preference name="AutoHideSplashScreen" value="false" /> 
    <preference name="SplashShowOnlyFirstTime" value="false" /> 
    <preference name="FadeSplashScreen" value="false" /> 
    <preference name="ShowSplashScreenSpinner" value="false" /> 
    <preference name="DisallowOverscroll" value="true" /> 
    <preference name="StatusBarOverlaysWebView" value="false" /> 
    <preference name="StatusBarBackgroundColor" value="#000000" /> 
    <preference name="android-minSdkVersion" value="15" /> 
    <preference name="android-targetSdkVersion" value="22" /> 
    <!--<plugin name="cordova-plugin-file" />--> 
    <plugin name="cordova-plugin-geolocation" /> 
    <plugin name="cordova-plugin-splashscreen" onload="true" /> 
    <plugin name="cordova-plugin-whitelist" /> 
    <plugin name="cordova-plugin-ios-longpress-fix" /> 
    <plugin name="cordova-plugin-statusbar" onload="true" /> 
    <plugin spec="https://github.com/phonegap/phonegap-plugin-push.git" source="git" > 
    <param name="SENDER_ID" value="123456" /> 
    </plugin> 
    <access origin="*" /> 
</widget> 

Dann wird in der index.js Datei, in der deviceReady Veranstaltung:

var push = PushNotification.init({ 
     android: { 
      senderID: "123456" 
     }, 
     browser: { 
      pushServiceURL: 'https://fcm.googleapis.com/fcm/send' 
     }, 
     ios: { 
      alert: "true", 
      badge: "true", 
      sound: "true" 
     }, 
     windows: {} 
    }); 

    push.on('registration', function (data) { 
     // data.registrationId 
     DevExpress.ui.notify("Device registered", "success", 3000); 
    }); 

    push.on('notification', function (data) { 
     // data.message, 
     // data.title, 
     // data.count, 
     // data.sound, 
     // data.image, 
     // data.additionalData 
     DevExpress.ui.notify(data.message, "info", 10000); 
    }); 

    push.on('error', function (e) { 
     // e.message 
     DevExpress.ui.notify(e.message, "error", 10000); 
    }); 

Und hier die Schmerzen beginnt .

Zunächst weiß ich nicht, ob die pushServiceURL korrekt ist. Ist dies die zu verwendende URL, wenn ich einige Benachrichtigungen von FCM senden möchte?

Dann habe ich die Anwendungsvorlage korrekt erstellt und die Apk erstellt. Aber natürlich, wenn ich es auf meinem Android-Gerät installiere und ich versuche, eine Benachrichtigung von FCM zu senden, sehe ich nichts in der App.

Weiterhin versuche ich das Registrierungsereignis mit einer Nachricht zu verwalten, nachdem die App gestartet wurde, aber Ich sehe diese Nachricht auch nicht.

Also, nichts funktioniert hier! Da es meiner Meinung nach an Dokumentation mangelt, können Sie mir helfen?

UPDATE: Nach der Dokumentation von Phonegap Plugin Push, bemerkte ich, dass ich die Google-Service.json enthalten muss. So schrieb ich in meinem config.xml:

<platform name="android"> 
    <resource-file src="google-services.json" target="google-services.json" /> 
    </platform> 

Und ich änderte den Code in dem index.js:

var push = PushNotification.init({ 
     android: {}, 
     ios: { 
      alert: "true", 
      badge: "true", 
      sound: "true" 
     }, 
     windows: {} 
    }); 

Seit der SenderID ist jetzt in der Google-services.json. Ferner entfernte ich die SenderID auch in der config.xml:

<plugin spec="https://github.com/phonegap/phonegap-plugin-push.git" source="git" /> 

Ich habe auch diese Datei in meinem Projekt innerhalb index.html (https://github.com/phonegap/phonegap-plugin-push/blob/master/src/js/push.js), aber ich weiß nicht, ob es richtig ist.

Antwort