8

Ich versuche, Push-Benachrichtigungen mit Ionic zu implementieren, und ich bin ziemlich verwirrt. Bisher habe ich die folgenden Alternativen ohne Erfolg versucht:Push-Benachrichtigungen mit Ionic Framework

Ionic Push-

scheint die beste Lösung zu sein. Es "simuliert" die Benachrichtigungen im Browser, um einen einfachen Test zu ermöglichen. Es gibt zwei Versionen:

  1. Version 1.0: Die Dokumente sind auf http://docs.ionic.io/v1.0/docs/push-overview verfügbar. Die Seite zeigt unten eine Warnung an, um die neueste Version (2.0 Beta) zu überprüfen. Wenn ich auf der Seite bleibe und versuche, den Anweisungen zu folgen, scheint alles in Ordnung zu sein, aber wenn ich den Push an https://push.ionic.io/api/v1/push sende, kommt keine Nachricht an. Beim Betrachten von Firebug habe ich festgestellt, dass $ ionicPush die API 2.0alpha abfragt, anstatt die API 1.0 abzufragen.

  2. Version 2.0: Die Dokumente sind verfügbar unter http://docs.ionic.io/docs/push-overview. Es ist 1.0 sehr ähnlich und es funktioniert gut in Browser, Android (Entwicklung und Produktion) und iOS-Entwicklungsumgebungen. Aber ich kann keine Nachrichten über die IOS-Produktion erhalten (nachdem die App veröffentlicht wurde). Ich suchte hart nach einer Lösung, aber ich fand einige Antworten, die besagen, dass es Alpha ist und nicht verwendet werden sollte. So

, wenn Version 1.0 nicht vorhanden ist (es wird mit dem v2.0 API) und v2.0 alpha ist und nicht verwendet werden sollte, stellte ich fest Ionic Drücken nicht verwendet werden kann.

Frage 1: Ist es möglich, ionic push zu verwenden, um Benachrichtigungen an iOS und Android zu senden?

Frage 2: Kann ich mit dem 2.0-Setup Nachrichten mit Apns PHP anstelle von Ionic Push senden?

Cordova Phonegap Plugin Drücken

Dieses Plugin von Ionic Drücken hinter den Kulissen verwendet wird, denke ich. Aber ich kann nicht herausfinden, wie es benutzt wird. Die Lernprogramme und Dokumente, die ich gefunden habe, sind veraltet und verweisen auf eine veraltete Version (https://github.com/phonegap-build/PushPlugin.git). Sogar ngCordova verweist auf diese veraltete Version (http://ngcordova.com/docs/plugins/pushNotifications/). ngCordova schlägt auch Ionic Push vor. Ich kann kein vollständiges Beispiel finden, das zeigt, wie man https://github.com/phonegap/phonegap-plugin-push mit ionischen verwendet.

Frage 3: wie Setup Cordova Phonegap Plugin Push mit ionischen?

+1

https://devdactic.com/ionic-push-notifications/ und https://devdactic.com/android-push-notifications/Dieses Tutorial wird dir helfen, es hat für mich funktioniert. –

+1

Diese Tutorials funktioniert auch für mich. Aber sie sprechen iOS nicht an, wo ich gerade Probleme habe. –

+0

https://github.com/RigelM/ionic_push/blob/master/Notification.txt –

Antwort

1

ich in der Lage war, Push-Benachrichtigungen auf IOS und Android mit ionischen 1 mit Google Firebase und https://github.com/arnesson/cordova-plugin-firebase/ zu senden/empfangen. Folgen, was ich getan habe:

  1. Erstellt die DEV/PROD Provisioning-Profile auf developer.apple.com. Beim Erstellen der Bereitstellungsprofile wurden meine Entwickler-/Teamzertifikate überprüft.
  2. Die DEV/PROD APS-Zertifikate wurden auf developer.apple.com erstellt.
  3. Installierte Entwickler-/Teamzertifikate auf der Dev-Maschine.
  4. Installierte DEV/PROD APS-Zertifikate auf der Dev-Maschine.
  5. Installierte Provisionierungsprofile auf der Dev-Maschine.
  6. Installiertes Plugin mit "cordova plugin add [email protected]".
  7. Added Code meiner App:

    window.FirebasePlugin.grantPermission(); window.FirebasePlugin.getInstanceId ( Funktion (Token) { thiss.saveToken (Token); }, Funktion (Fehler) { console.log (error); } );

    window.FirebasePlugin.onNotificationOpen ( Funktion (Benachrichtigung) {
    // alert ("Yeahh!");} , Funktion (Fehler) { // alert (" Error ");} ).

  8. Erstellt Google GCM/Google Firebase Konto

  9. meine App Firebase Hinzugefügt mit iOS/Android-Plattformen.
  10. hinzugefügt APS-Zertifikate "Cloud Messaging" auf Feuerbasis Projekteinstellungen.
  11. Heruntergeladene GoogleService-Info.plist e google-service.json und legte sie in meine app Stammordner.
  12. Bauen ed die App.
  13. Nur IOS: In XCode aktiviert "Push-Benachrichtigungen" und "Hintergrund-Modi: Benachrichtigungen erhalten".

Benachrichtigung senden ich den folgenden PHP-Skript verwenden:

$data = Array 
(
    [to] => <token> 
    [priority] => high 
    [notification] => Array 
     (
      [title] => My Title 
      [text] => Notification test 
      [sound] => default 
      [vibrate] => 1 
      [badge] => 0 
     ) 

) 

$jsonData = json_encode($data); 
$ch  = curl_init("https://fcm.googleapis.com/fcm/send"); 
$header = array(
    'Content-Type: application/json', 
    "Authorization: key=".$gcmApiKey 
); 

curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, true); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true); 

curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData); 

$result = curl_exec($ch); 
curl_close($ch); 

echo $result; 
+0

Hallo @ArivanBastos Ich habe meine ionic Android bauen sowohl Senden und Empfangen von Benachrichtigungen und mein iOS Build Empfangen von Benachrichtigungen, aber kann nicht scheinen zu senden. Ich möchte nur etwas klären. Sie setzen sowohl GoogleService-Info.plist als auch google-service.json in die Wurzel Ihres ionischen Projekts? Oder jede in ihren jeweiligen Plattformen/ios und Plattformen/Android? –

+0

In der Wurzel. Das Plugin verschiebt die Dateien beim Erstellen an den richtigen Ort. Was meinst du mit deiner App kann empfangen aber nicht senden? Wird beim Ausführen des PHP-Skripts ein Fehler angezeigt, um Push-Nachrichten an das Gerät zu senden? –

+0

Danke. Ich habe es gestern im Stamm meines XCode-Projekts installiert und das Build habe es gestern in die Wurzel von "platforms/ios" gestellt. Das hat es nicht behoben. Ich werde die Wurzel meines Ionenprojekts versuchen. –

1

Ich habe Ionic Push noch nicht benutzt, daher kann ich nur versuchen, Ihre dritte Frage zu beantworten.

Eigentlich denke ich, dass die Beispiele auf der GitHub-Plugin-Seite ziemlich gut sind, also werde ich auf diese verweisen. Wenn Sie weitere Fragen haben, zögern Sie nicht, zu kommentieren, und ich werde es näher ausführen.

Um zu starten, fügen Sie die example script in Ihrem index.html innerhalb eines deviceready Listener Callback und initialisieren Sie das Plugin mit Ihren Einstellungen. Im Registrierungsereignishandler erhalten Sie die Geräte-ID des aktuellen Benutzers über data.registrationId, die Sie in Ihrer Datenbank speichern können.

Um tatsächlich Push-Nachrichten zu senden, verwende ich node-gcm (Android) und apnagent (iOS) serverseitig.Es gibt auch einige gute Beispiele für Android auf der plugin page.

+0

Vielen Dank. Ich habe versucht, das Beispielskript zu verwenden, aber ich erhalte den Fehler "PushNotification undefined". Also dachte ich, dass es notwendig wäre, die Datei "www/push.js" in meine index.html aufzunehmen, aber ich bin mir nicht sicher. Können Sie ein vollständiges Beispiel zeigen? –

+1

@ArivanBastos Nein, Sie müssen keine Plugin-Quellen hinzufügen, dies geschieht automatisch durch Cordova. Haben Sie '' in Ihre index.html aufgenommen? – kolli

+0

Ja, habe ich! Aber ich bekomme den "undefined" Fehler beim Ausführen der App im Browser. Dies ist sinnvoll, da Push-Benachrichtigungen im Browser nicht verfügbar sind, aber bis jetzt hatte ich keine Browserfehler bei der Entwicklung von ionischen Apps, selbst wenn native Komponenten verwendet wurden. Ich werde das Beispiel nochmal versuchen, danke! –

4

Frage 1: ist möglich, ionic push verwenden, um Benachrichtigungen an iOS und Android zu senden?

Sicher! Sie müssen ein Konto auf der Plattform Ionic.io haben und einige Schritte ausführen, um Ihre Zertifikate hinzuzufügen. Die Guides, die ich ursprünglich geschrieben habe, sind bereits in der Antwort auf deine Frage verlinkt, aber sie sind für Version 1.0.

Frage 2: mit dem 2.0-Setup, kann ich Nachrichten mit Apns PHP anstelle von Ionic Push?

Sie sind immer frei, wie Sie Ihre Pushes senden möchten. Ionic.io macht das Leben viel einfacher, da Ihre Zertifikate dort gespeichert werden. Sie könnten beispielsweise verwenden, um die CURL Beispiele, die sie bieten, so dass Sie einfach eine POST-Anforderung von Ihrem PHP-Server auf den Ionic.io Server machen eine Push-Benachrichtigung

Frage 3 zu erstellen: wie Setup Cordova Phonegap Plugin mit ionischen Drücken ?

Ich habe vor kurzem eine complete guide for the new 2.0 version of Ionic Push veröffentlicht, wo ich den Prozess für iOS und Android beschreiben!

+0

Hallo @ saimon24, ich frage mich, ob er nicht gemeint ist, wie ich cordova phonegap plugin push innerhalb eines ionischen Projekts einrichten, ohne ionischen Push zu verwenden ? Dies ist das Problem, mit dem ich derzeit konfrontiert bin. – IonicBurger

+0

@simon Wie würden Sie das in einem Intranet tun? Hast du einen anderen Artikel dazu? – Mukus

Verwandte Themen