Dieser Artikel wurde maschinell übersetzt.

Microsoft Azure

Push-Benachrichtigungen zu Cordova Apps mit Microsoft Azure

Glenn Gailey

Laden Sie die Codebeispiele herunter

Da mobile Geräte vermehren und zu einer allgegenwärtigen Bestandteil unserer täglichen Existenz Verbraucher erwarten mehr von ihrer mobile apps. Während es einst akzeptabel für Ihre mobile app einfach an die Wolke zum Abrufen der neuesten Aktiennotierung oder User generated Datenspeicher angeschlossen war, erwarten Benutzer jetzt Ihre app um sie zu warnen, wenn Ereignisse eintreten — z. B. Wenn ihre Aktie einen bestimmten Preis hits oder wann ihre Team-Resultate. Heute unterstützen alle native Geräteplattformen Push-Benachrichtigungen, die Interaktion mit den Benutzern nahezu in Echtzeit ermöglicht.

Aufgezeigt werden die Grundlagen der Nutzung der Microsoft Azure-Plattform zum Senden von Push-Benachrichtigungen zu apps, die mit dem Visual Studio -Tools für Apache Cordova entwickelt. Ich werde mit einem anderen Cordova-Beispiel-app-Projekt starten, erstellen und konfigurieren die erforderlichen Dienste, und ändern Sie dann die app für Push-Benachrichtigungen, alle im Visual Studioregistrieren. Ich werde zum Senden von Push-Benachrichtigungen an eine Android app konzentrieren, aber vollständige Cordova app Beispiel unterstützt die Android und iOS-Plattformen. Ich werde zeigen, wie den Android Emulator zu verwenden, nicht, weil es ist groß (ist es nicht), sondern weil es Push-Benachrichtigungen unterstützt. Ich empfehle ein Android-Gerät, anstatt den Emulator verwenden, wenn du kannst. (Beachten Sie, dass Push-Benachrichtigungen mit einem iOS-Gerät sendet ein physisches Gerät und einen Apple Developer Account benötigt und die Mobile Dienste Plug-in nicht derzeit unterstützt Windows Phone .)

Um die Visual Studio 2013-Werkzeuge hervorgehoben, die in diesem Artikel verwenden, müssen Sie Update 4 installiert haben. Sie brauchen auch Visual Studio -Tools für Apache Cordova (aka.ms/uopu9r), die auch in Visual Studio 2015 Preview enthalten ist. Einen umfassenderen Überblick über diese Tools finden Sie im Artikel "Schreiben Hybrid plattformübergreifende Anwendungen in Visual Studio mit Apache Cordova", in diesem Problem.

Schließlich benötigen Sie eine Azure Konto. Wenn Sie noch kein Konto besitzen, können für eine Azure Testversion anmelden und erhalten bis zu 10 kostenlose mobile Dienste, die Sie auch nach Ihrer Studien enden weiterverwenden können. Einzelheiten finden Sie in der Azure Testversion-Seite (aka.ms/qepjcc).

Wie Push-Benachrichtigungen arbeiten

Die native Gerät plattformunabhängig, alle Push-Benachrichtigung-Architekturen sind REST-basierte, die Details Plattform -­bestimmte. Abbildung 1 zeigt die Dienstarchitektur, zum Senden von Push-Benachrichtigungen mit Azure erforderlich.

Push- Notification Services -Architektur
Abbildung 1 Push- Notification Services -Architektur

Wie Sie, in sehen können Abbildung 1, der Schlüssel zu einer Push-Benachrichtigung-Architektur ist der Plattform-Benachrichtigungsdienst (PNS). Dieser Plattform-gerätespezifische-Service ist verantwortlich für das Senden von Nachrichten an das native Gerät, und es ist tatsächlich das Gerät, das die Benachrichtigung, nicht die app behandelt. Sehen Sie in Abbildung 1 , die ein Back-End-Dienst wird auch benötigt, um Benachrichtigungen an das Gerät senden (Dies kommt Azure). In den meisten Fällen muss der Back-End-Dienst authentifizieren, mit den PNS können zum Senden von Benachrichtigungen, die getan wird, um zu verhindern, dass böswillige Verwendung von der PNS. Der grundlegende Prozess senden einer Push-Benachrichtigung geht wie folgt:

  1. Die mobile app kontaktiert die PNS um ein Handle zu beantragen, die der Dienst verwendet, um das Gerät zu identifizieren. Diese Griffe sind nicht haltbar und müssen verwaltet und regelmäßig aktualisiert werden.
  2. Die app sendet das Handle an die Back-End-Dienst, wo sie, in der Regel mit anderen Daten gespeichert, die den Service auf das Gerät korrekt anwenden können. Wie Sie sehen werden, ist Azure für diese große.
  3. Wenn Sie eine Push-Benachrichtigung zu senden, sendet der Back-End-Dienst eine Anforderung an den Benachrichtigungsdienst, umfasst den Griff und die Nachricht in einem Plattform-spezifischen Format (in der Regel JSON oder XML).
  4. Die PNS die Anforderung authentifiziert und sendet die angeforderte Nachricht an das Gerät, das durch das angegebene Handle identifiziert wird.

Jede native Geräteplattform hat eine eigene PNS. Das heißt, wenn Sie erstellen eine Cross-Plattform-app mit Cordova und Nachrichten senden möchten, müssen Sie Ihre Anwendung mit einem oder mehreren der folgenden Dienste bereitstellen:

  • Apple Push Notification Service (APNS) für iPad und iPhone-Geräte
  • Google Cloud Messaging-Dienst (GCM) für Android-Geräte
  • Windows Notification Service (WNS) für Windows-Geräte
  • Microsoft Push Notification Service (MPNS) für Windows Phone Geräte

Die Push-Benachrichtigung-Plug-in für PhoneGap (aka.ms/xltv38) wird verwendet, um Ihre Cordova-app mit der native Gerät PNS zu registrieren. Aber auch mit diesem bequemen Plug-in, Sie weiterhin haben beide verwalten Registrierungen für Ihre Anwendung auf den verschiedenen Plattformen, die Sie unterstützen und schicken Sie eine Nachricht über all jene unterschiedlichen Plattformen. Zusätzlich zu all dem müssen Sie noch zur Schaffung und Erhaltung eines Back-End-Diensts, der die Benachrichtigungen versendet. Glücklicherweise kommt Azure zur Rettung, indem beide eine vereinfachte Möglichkeit zum Registrieren und verwalten Gerät Registrierungen sowie eine bequeme Back-End-Dienst, um Benachrichtigungen zu senden zu Ihrer Cordova-app.

Warum verwenden Azure für Push-Benachrichtigungen?

Es gibt zwei Dienste in Azure, die speziell für Push-Benachrichtigungen an Ihre apps Cross-Plattform mobile Geräte senden erleichtern: Himmelblau Benachrichtigung Hubs und azurblauen Mobile Dienste.

Benachrichtigung Naben eine skalierbare, Cross-Plattform-Lösung für das Senden von Push-Benachrichtigungen für mobile Geräte, Benachrichtigung Hubs funktioniert gut mit Cordova apps. Benachrichtigung Hubs verwaltet die Registrierungen mit jeder PNS. Noch wichtiger ist, Benachrichtigung Hubs können Sie die Vorlage Registrierungen zu erstellen, so können Sie Nachrichten an alle registrierten Geräte, unabhängig von Plattform, mit nur einer einzigen Codezeile. Markierungen können Sie auch um gezielte Benachrichtigungen nur für Geräte mit bestimmten Eintragungen zu senden. Weitere Informationen zu Notification Hubs, finden Sie in der Azure-Website unter aka.ms/nkn4n4.

Mobile Dienste , die speziell für mobile Anwendungen zu unterstützen, Mobile Services integriert Notification-Hubs. Wenn Sie einen neuen mobilen Service erstellen, wird eine neue Benachrichtigung-Drehscheibe automatisch für Sie bereitgestellt. Zum Zeitpunkt des Verfassens dieses Artikels kann sogar ein mobiler Dienst, ausgeführt in der freien Ebene 1 Million pro Monat kostenlos schiebt. Neben Push-Benachrichtigungen bietet Mobile Services auch einfache Ablage für Ihre app-Daten in SQL Azure-Datenbank und Authentifizierung mit populären Anbietern, wie Facebook, Google, Himmelblau Active Directory, Microsoft-Konto und Twitter. Weitere Informationen zu Mobile-Diensten finden Sie unter der Azure-Website unter aka.ms/az48v5.

Da Mobile Services mit der Benachrichtigung Nabe integriert, können Sie für Push-Benachrichtigungen mit dem Mobile Services-Client anmelden. Es gibt keine Notwendigkeit, die Benachrichtigung Hubs Zugriffsrichtlinien oder Verbindungszeichenfolgen beschäftigen.

Während ich dies schreibe unterstützt der Mobile Services-Client nur Registrierung für iOS und Android apps. Wenn Sie auch Ihre Cordova-app für Windows Phone mit MPNS unterstützen müssen, finden Sie in meinem Blog-post, "Push-Benachrichtigungen, PhoneGap Apps mithilfe Benachrichtigung Hubs Integration" aka.ms/ r197ab.

Erhalten Sie die TodoList-Beispielanwendung

Mobile Services ist über die Verbindung Ihre mobilen apps — einschließlich Cordova-basierten Anwendungen — auf Azure für Lagerung, Authentifizierung und Push-Benachrichtigungen. Als solches ist es wirklich welche app egal, ich benutze Push-Benachrichtigungen, demonstrieren, solange es eine Cordova-app ist. Es gibt mehrere auf der Grundlage von Cordova Todo app Beispielprojekte veröffentlicht durch das Visual Studio -Leute, jeweils eine andere JavaScript-Framework verwenden. Sie finden diese Visual Studio-basierten Cordova Proben bei aka.ms/dxrr30.

Obwohl AngularJS wohl immer beliebter Rahmen, die AngularJS Version der Todo-Beispiels veranschaulicht, wie die Mobile Services-REST-APIs für die remote-Daten-Speicherung ist. Das Rückgrat­JS-Beispiel verwendet die Mobile Dienste Plug-in, also in diesem Beispiel fügen Sie Push-Benachrichtigungen die Erweiterung einfacher ist. So, ich entschied mich für die BackboneJS-Version des Beispiels zu verwenden (aka.ms/sffl1f). Unabhängig von der JavaScript-Framework, die, das Sie für Ihre Anwendung (falls vorhanden) verwenden, gelten die gleichen grundlegenden Schritte.

Zu diesem Zeitpunkt sollten Sie index.html-Datei des Projekts öffnen und löschen oder kommentieren Sie die vorhandenen Mobile-Dienste-Verweise, die wie folgt aussehen:

<script src="https://ajax.aspnetcdn.com/ajax/mobileservices/
  MobileServices.Web-1.1.3.min.js"></script>
<script src="services/mobile services/todolist-xplat/service.js"></script>

Sie sollten wohl auch den gesamten vorhandenen \services-Ordner löschen, der service.js der ursprünglichen Beispieldatei enthält. Dies wird helfen, um Verwechslungen zwischen mehreren MobileServiceClient Variablen später zu vermeiden. Im nächsten Abschnitt verwenden Sie Visual Studio erstellen einen neuen mobilen Service und schließen es an Ihre Cordova-app. Sie werden auch die PushPlugin, Gerät und Console Plug-ins zum Projekt hinzufügen.

Erstellen Sie die Back-End-Azure-Services

Visual Studio erleichtert die Azure Services bereitstellen, die Sie brauchen, und du kannst es direkt von der IDE. Als nächstes zeige ich die Vorgehensweise beim Erstellen eines neuen mobilen Service-rechts von Visual Studio (vorausgesetzt, Sie haben ein aktives Azure-Abonnement).

Im Visual Studio -Projektmappen-Explorer Maustaste auf das Projekt, und dann klicken Sie auf Hinzufügen | Verbundenen Dienst. Den Dienste-Manager klicken Sie auf Create Service. Legen Sie die folgenden Felder im Dialogfeld Create Mobile Service, gezeigt Abbildung 2, klicken Sie auf erstellen:

  • Abonnement: Dies ist Ihr Azure-Abonnement.
  • Name: Dies ist der Name des neuen mobilen Diensten, die in Azure eindeutig sein müssen und das wird Teil der Dienst-URL. Ein rotes X angezeigt wird, wenn Sie den Namen eingegeben haben ist nicht verfügbar.
  • Laufzeit: Diese Anwendung verwendet ein JavaScript (Node.js)-Back-End, macht einfach mehr Sinn für JavaScript-Programmierer als eine .NET back-End (ASP.NET Web API Projekt).
  • Region: Die Position des mobilen Dienstes – idealerweise in derselben Position wie der SQL-Datenbank.
  • Datenbank: Wählen Sie eine vorhandene Datenbank in der gleichen Region oder Erstellen einer neuen Datenbank, idealerweise eines freien. Wenn Sie eine vorhandene Datenbank auswählen, Tabellen gehören das Schema, das den mobilen Service-Namen ist, so gibt es keine Gefahr für Ihre aktuellen Daten.
  • Server-Benutzernamen und das Passwort des Servers: Dies sind wichtige Anmeldeinformationen, so halten sie sicher. Mobile Dienste brauchen sie nicht wieder, aber Sie werden wenn Sie diese Datenbank für etwas anderes, wie z. B. verwenden, um einen anderen mobilen Dienst unterstützen möchten.

das Erstellen von mobilen Service-Dialog
Abbildung 2 das Erstellen von mobilen Service-Dialog

Wenn Sie erstellen klicken, wird eine neue mobile Service sowie eine neue Benachrichtigung-Drehscheibe bereitgestellt. Zurück im Dialogfeld Dienst-Manager wählen Sie den neuen Dienst, und klicken Sie auf OK. Dadurch wird eine Version des Mobile Service-Plug-in und der InAppBrowser-Plug-in, das Mobile Services für die Authentifizierung verwendet wird, das Cordova-Projekt hinzugefügt. Es fügt auch öffnet eine neue Codedatei, z. B. Todolist-cordova.js, die zum Herstellen einer Verbindung mit dem mobilen Dienst MobileServiceClient-Instanz definiert. Lassen Sie diese Datei geöffnet; Sie werden später Updates hier machen.

Als nächstes müssen Sie eine neue TodoItem-Tabelle in der SQL-Datenbank zu erstellen, die die app verwenden können, um Elemente zu speichern. Öffnen Sie Server-Explorer, erweitern Sie den azurblauen Knoten und dann den Knoten "Mobile Services", mit der rechten Maustaste des mobilen Dienstes und wählen Sie Create Table. Geben Sie TodoItem für Tabellennamen, und klicken Sie auf erstellen. Eine neue TodoItem-Tabelle wird unter den mobilen Service-Knoten im Server-Explorer hinzugefügt. Dieser Knoten entspricht eine neue SQL-Datenbank-Tabelle, die als neue Tabelle in Ihrem mobilen Dienst verfügbar gemacht wird.

Zu diesem Zeitpunkt müssen Sie die standardmäßigen Insert Skript Exe aktualisieren­Biege von Mobile Services Wenn eine INSERT-Anweisung in die neue Tabelle erfolgt. Im Server-Explorer erweitern Sie die TodoItem-Tabelle, die Sie gerade hinzugefügt, öffnen Sie die insert.js-Datei, und ersetzen Sie den Code in die vorhandene Insert-Funktion Abbildung 3.

Abbildung 3 das Skript ausgeführt, beim Einfügen von Elementen in die TodoItem-Tabelle

function insert(item, user, request) {
  // Execute the request and send notifications.
  request.execute({
    success: function () {
      // Create a template-based payload.
      var payload = '{ "message" : "New item added: ' + item.text + '" }';
      // Write the default response and send a template notification
      // to all registered devices on all platforms.           
      push.send(null, payload, {
        success: function (pushResponse) {
          console.log("Sent push:", pushResponse);
          // Send the default response.
          request.respond();
        },
        error: function (pushResponse) {
          console.log("Error Sending push:", pushResponse);
          // Send the error response.
          request.respond(500, { error: pushResponse });
        }
      });
    }
  });
}

Der Code in Abbildung 3 Ruft die Send-Methode für das Push-Objekt, eine Template-basierte Push-Benachrichtigung an alle registrierten Geräte zu senden. Statt einen NULL-Wert an den ersten Parameter (Tags) wie in diesem Fall übergeben, können Sie auch ein Tagwert oder ein Array von Tags übergeben. Wenn Sie Tags verwenden, senden Benachrichtigung Hubs Benachrichtigungen an ein Gerät nur deren Eintragung eines dieser Tags enthält. Weitere Informationen über Markierungen finden Sie unter aka.ms/cwr4l4.

Schließlich müssen Sie zu der Website von Azure Management Portal navigieren, damit Sie Ihre app PNS Anmeldeinformationen, die Sie im nächsten Abschnitt erstellen werde registrieren können. Im Server-Explorer mit der rechten Maustaste des Knotens für den mobilen Dienst in Azure, dann klicken Sie auf Öffnen im Management Portal und melden Sie sich im Portal. An diesem Punkt sollten Sie in der Registerkarte "Quickstart" (gekennzeichnet durch ein Symbol nur) für Ihre neue mobile Service sein. Klicken Sie auf die Registerkarte "Push", und beachten Sie den Namen der Benachrichtigung Nabe von Ihrem mobilen Dienst am oberen Rand der Seite verwendet. Sie müssen das wissen, wenn Sie Ihre Anmeldung-Nabe in Visual Studio behandeln (wie Sie später sehen werden). GCM-Einstellungen am unteren Rand der Seite scrollen. Dies ist, wo Sie den GCM-API Schlüssel festlegen, wenn Push-Benachrichtigungen bereitgestellt werden.

Bereitstellen der Messaging-Dienst Google-Cloud

Der zeitaufwendigste Teil der Konfiguration von Push-Benachrichtigungen ist in der Regel die app mit den PNS Bereitstellung. Zum Glück muss diese Bereitstellung nur einmal für eine bestimmte Anwendung und Plattform durchgeführt werden. Für Android, benötigen Sie ein Google-Konto Ihrer Cordova-app mit GCM auf der Google Entwickler Konsole-Website bereitstellen (aka.ms/wt80js). Nach der Anmeldung, klicken Sie auf Projekt erstellen, geben Sie einen Projektnamen und (optional) Ihre eigenen eindeutigen Projektkennung, akzeptieren Sie die Bedingungen und klicken Sie dann auf erstellen. Einmal erstellt, ist das neue Projekt angezeigt. Notieren Sie die Projektnummer-Wert am oberen Rand der Seite angezeigt; Du wirst es später brauchen.

Anschließend erweitern Sie APIs & Auth, klicken Sie auf APIs für Android Google Cloud Messaging scrollen, aktivieren Sie es und akzeptieren die Nutzungsbedingungen. Nun, unter APIs & Auth, klicken Sie auf Anmeldeinformationen, klicken Sie unter öffentliche API-Zugang erstellen neuen Schlüssel, klicken Sie auf Schlüssel des Servers und dann erstellen. Notieren Sie den Wert des API-Schlüssels. Zurück im Azure Management Portal geben Sie die API-Schlüssel unter dem Abschnitt "Google cloud messaging-Einstellungen" und klicken Sie auf speichern.

Der API-Schlüssel ist jetzt festgelegt und Benachrichtigung Hubs können jetzt GCM, um Push-Benachrichtigungen an Ihre app zu senden. Wenn Sie Probleme, die Bereitstellung von GCM, oder wenn die Website ändert, Sie immer die neuesten und detaillierte Schritte finden für die Bereitstellung von GCM im Artikel "Wie auf Google Cloud Messaging aktivieren," auf der Himmelblau-Website unter aka.ms/po7r8n. Auch finden Sie die entsprechenden Schritte für die Bereitstellung eines iOS Clients mit APNS im Artikel "Wie zu aktivieren Apple Push-Benachrichtigungen," auf der Azure-Website unter aka.ms/vooydc . Beachten Sie, dass da Notification Hubs einen unabhängigen Dienst ist, andere Back-End-Dienste auch diese Registrierung verwenden, um Benachrichtigungen an Ihre app zu senden.

Aktualisieren Sie den Client auf Register für Benachrichtigungen

Das letzte, was, das Sie tun müssen, ist, aktualisieren das heruntergeladene TodoList-Beispielprojekt für Push-Benachrichtigungen mit Azure registrieren, wenn die Anwendung gestartet wird. Zuerst müssen Sie die erforderliche Plug-Ins hinzufügen. Doppelklicken Sie im Projektmappen-Explorer auf die Datei config.xml Projekt, um in der Konfiguration-Designer öffnen, und wählen die Registerkarte "Plugins". Fügen Sie unter Core die Gerät, Konsole und Geolocation-Plug-ins. Wenn die Azure-Mobile-Dienste-Plug-in bereits installiert wurde, klicken Sie auf entfernen, um es zu deinstallieren – müssen Sie eine neuere Version installieren, unterstützt-Benachrichtigungen Push. Als Nächstes klicken Sie auf Benutzerdefiniert, wählen Sie Git, geben Sie den folgenden URL in das Plug-in Azure Mobile Services-Repository, und klicken Sie dann auf hinzufügen:

https://github.com/Azure/Azure-Mobile-Services-Cordova.git

Dieses Paket installiert die neueste Version des Plug-ins, die die Mobile Services-Client-Bibliothek enthält. Wiederholen Sie den vorherigen Schritt, um die PushPlugin zum Projekt hinzufügen, indem mithilfe der folgenden Repository-URL:

https://github.com/PhoneGap-Build/PushPlugin.git

Abbildung 4 zeigt, wie einfach Visual Studio macht jetzt gültige Cordova-Plug-in zu Ihrem Projekt hinzufügen.

die App-Projekt die PushPlugin-Plug-in hinzufügen
Abbildung 4 die App-Projekt die PushPlugin-Plug-in hinzufügen

Öffnen Sie die Projektdatei, die erstellt wurde, wenn Sie die Verbindung des Mobile-Services zu Ihrem Projekt hinzugefügt (diejenige mit dem Namen wie Todolist-cordova.js, wo Todolist-Cordova der Name ist der Dienst). Speichern Sie eine Kopie der vorhandenen MobileServiceClient-Konstruktor, der enthält die URL für Ihre mobilen Service und die Anwendungstaste (damit sie nicht überschrieben werden), dann ersetzen Sie diese generierten code durch den Code in Abbildung 5.

Abbildung 5-Code, der für Push-Benachrichtigungen Wenn die App startet mit Azure registriert

var GCM_SENDER_ID = '<your_project_number>'; // Replace with your own ID.
var mobileServiceClient;
var pushNotification;
// Create the Azure client register for notifications.
document.addEventListener('deviceready', function () {
  mobileServiceClient = new WindowsAzure.MobileServiceClient(
    'https://todolist-cordova.azure-mobile.net/',
    'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
  // Define the PushPlugin.
  pushNotification = window.plugins.pushNotification;
  // Platform-specific registrations.
  if (device.platform == 'android' || device.platform == 'Android') {
    // Register with GCM for Android apps.
    pushNotification.register(successHandler, errorHandler,
      {
        "senderID": GCM_SENDER_ID,
        "ecb": "onGcmNotification"
      });
  }
});
// Handle a GCM notification.
function onGcmNotification(e) {
  switch (e.event) {
    case 'registered':
      // Handle the registration.
      if (e.regid.length > 0) {
        console.log("gcm id " + e.regid);
        if (mobileServiceClient) {
          // Template registration.
          var template = "{ \"data\" : {\"message\":\"$(message)\"}}";
          // Register for notifications.
          mobileServiceClient.push.gcm.registerTemplate(e.regid,
            "myTemplate", template, null)
            .done(function () {
              alert('Registered template with Azure!');
            }).fail(function (error) {
              alert('Failed registering with Azure: ' + error);
            });
          }
        }
        break;
      case 'message':
        if (e.foreground) {
          // Handle the received notification when the app is running
          // and display the alert message.
          alert(e.payload.message);
          // Reload the items list.
          refreshTodoItems();
        }
        break;
      case 'error':
        alert('Google Cloud Messaging error: ' + e.message);
        break;
      default:
        alert('An unknown GCM event has occurred');
        break;
  }
}

Der Code in Abbildung 5 fordert eine Registrierungs-ID von GCM, dann verwendet die zurückgegebenen Registrierungs-ID zu erstellen oder eine Benachrichtigung Hubs-Registrierung zu aktualisieren. Beachten Sie, dass Abbildung 5 GCM-Code erforderlich für Android, nur enthält, während der begleitenden Projekt-Download Code für Android und iOS enthält. Wenn dieser Code ausgeführt in Ihrem Projekt erhalten möchten, ersetzen Sie den MobileServiceClient-Konstruktor mit dem gespeicherten Visual Studio Tools hinzugefügt wurde. Außerdem legen Sie GCM_SENDER_ID auf die Projektnummer Ihrer APP im Google-Entwickler-Konsole.

Das Android Emulator für Push-Benachrichtigungen konfigurieren

Im Gegensatz zu den iOS-Simulator können Sie Push-Benachrichtigungen auf dem Android-Emulator erhalten, sofern Sie ein paar zusätzliche Konfigurationsschritte ausführen. Grundsätzlich müssen Sie die Google-APIs verwenden, und fügen Sie ein Google-Konto. Wenn Sie ein physisches Android-Gerät verwenden, können diese Schritte überspringen und mit dem nächsten Abschnitt zum Ausführen und Testen Ihrer Anwendung. (Wieder, wenn möglich, Sie sollten wirklich versuchen, auf einem physischen Android Gerät ausgeführt — der Emulator, der mit dem Android SDK ausgeliefert ist quälend langsam, aber es funktioniert.)

Geben Sie an einer Eingabeaufforderung "android Avd", die im Android Virtual Device (AVD)-Manager wird angezeigt. Sie sollten mindestens eine AVD erhältlich, haben die manchmal MyEmulator genannt wird. Wenn Sie eine AVD haben, müssen Sie eine erstellen. Wählen Sie Ihre AVD, klicken Sie auf Bearbeiten, dann das Ziel gesetzt, auf Google-APIs und klicken Sie auf OK. Klicken Sie auf starten, um diesem Emulator auszuführen. Klicken Sie auf dem Emulator klicken Sie auf das Symbol "apps" und dann auf Einstellungen. Scrollen Sie Konten, klicken Sie auf Konto hinzufügen, klicken Sie auf Google und Hinzufügen eines neuen oder vorhandenen Kontos für den Emulator. Mit dem Google-Konto hinzugefügt erhalten Sie Benachrichtigungen auf dem Emulator.

Sobald Sie ein Google-Konto auf dem Emulator hinzugefügt haben, sollten Sie planen, zu halten den Emulator ausgeführt (es sei denn Sie Schnappschüsse in den Emulatoroptionen aktiviert haben). Andernfalls wird nicht der Zustand des Geräts beibehalten werden, wenn Sie neu, den Emulator starten, und Sie ein Google-Konto, um wieder Benachrichtigungen können erneut hinzufügen müssen.

Führen Sie die Anwendung und generieren Pushbenachrichtigungen

Beim erstmaligen die Anwendung ausführen entsteht eine neue Registrierung in Ihrer Benachrichtigung-Nabe. Bei zukünftigen Systemstarts wird die Eintragung mit der jüngsten Registrierungs-ID von der GCM zurückgegeben aktualisiert. Mit dem Android-Emulator ausgewählt, drücken Sie F5 zum Starten und Ausführen der app. Visual Studio startet einen Cordova-Build, die gezielt auf die Android-Plattform, und die app bereitgestellt und begann auf dem laufenden-Emulator (es beginnt auch den Emulator, falls erforderlich). Nachdem die app geladen hat, wird eine Warnung angezeigt, nachdem die app erfolgreich registriert (oder die Registrierung aktualisiert) für Push-Benachrichtigungen mit Azure. Beim Hinzufügen eines neuen Elements, die OnGcmNotification-Funktion (siehe Abbildung 5) behandelt die eingehende Nachricht, wenn die Anwendung ausgeführt wird, und die Meldung in eine Warnung zeigt .

Wenn die app nicht läuft, landet die Benachrichtigung in der Statusleiste angezeigt. Abbildung 6 die Meldung, als eine Warnung (auf der linken Seite) und in der Statusleiste angezeigt.

Benachrichtigungen als eine Warnung (links) und erscheint in der Statusleiste
Abbildung 6-Benachrichtigungen als eine Warnung (links) und erscheint in der Statusleiste

Sie können dieses Verhalten testen, indem man aus der app direkt nach dem Absenden. Oder, wenn es nicht genug Zeit, dies zu tun, können Sie eine Verzögerung in der Insert-Skript hinzufügen, bevor die Send-Methode aufgerufen wird. Wenn Sie die Benachrichtigung in der Statusleiste klicken, wird die app gestartet.

Eine andere Möglichkeit, dies zu zeigen ist eine Benachrichtigung der Test für Ihre Anwendung.

Problembehandlung bei Registrierungen von Test-Benachrichtigungen senden

Da mehrere Dienste und verschiedenen Registrierungen beteiligt sind, kann es schwierig zu Push-Benachrichtigungen zu beheben sein. Glücklicherweise ist die Diagnosefunktionalität für Notification-Hubs direkt in Visual Studio 2013 integriert. Aus dem Server-Explorer erweitern Sie, Azure und dann die Benachrichtigung Hubs, und Sie sollten Ihre Benachrichtigung Nabe aufgeführt. Doppelklicken Sie auf dieses Element und Sie sehen eine diagnostische Seite rechts in Visual Studio zu öffnen (siehe Abbildung 7). Diese Seite hat die folgenden zwei Registerkarten:

  • Test senden: Dadurch können Sie verfassen und Senden von Nachrichten mithilfe den Benachrichtigung-Hub. Sie können spezifische native Gerät Registrierungen Ziel oder in diesem Fall eine Vorlage-Registrierung. Werden gesendet, wenn Sie auf senden, die gesonderte Ankündigung klicken; Das Ergebnis ist wie von Notification-Hubs, protokolliert in Nachricht Ergebnis dargestellt.
  • Gerät Anmeldungen: Dies listet alle Registrierungen, die derzeit in der Benachrichtigung-Hub vorhanden sind. Auf dieser Registerkarte können Sie Registrierungen löschen oder aktualisieren die Tags-Auflistung für eine Registrierung. Auf dieser Registerkarte sehen Sie mindestens eine Registrierung, die nur hinzugefügt wurde, wenn Sie Ihre app gestartet.

Benachrichtigungsseite Hubs Diagnose
Abbildung 7 Benachrichtigungsseite Hubs Diagnose

Denken Sie daran, wenn Sie eine Test-Benachrichtigung von Visual Studio senden und die app nicht ausgeführt wird, taucht die Meldung in der Statusleiste. Hatte die app ausgeführt wurde, eine Warnung würde wurde zogen stattdessen (wie in gezeigt wurde Abbildung 6).

Viel von der gleichen Push-Benachrichtigung-Test-Funktionalität finden Sie in der Registerkarte Benachrichtigung Hubs auf dem Azure Management Portal (manage.windowsazure.com), aber es hat toll zu testen und einige grundlegende Recht im Visual Studio IDE Debuggen zu tun.

Vereinfachte Benachrichtigungen

Um zu überprüfen, erwarten die mobile Benutzer nun mehr denn je ihre Geräte zu halten sie auf dem Laufenden mit den neuesten auf ihre Interessen und was um sie herum vor sich geht. Ihre mobile app muss in der Lage, Ihre Kunden in nahe-Echtzeit über Aktualisierungen in die wichtigen Daten zu informieren, die Ihre Anwendung bietet. In einer Cross-Plattform-app, wie z. B. eine Cordova-basierte Anwendung kann Umgang mit vier oder mehr verschiedene native Push-Benachrichtigungen-Plattformen schwierig zu konfigurieren und zu verwalten.

Mit seiner Unterstützung für Template-basierte Registrierungen ist die Benachrichtigung Hubs eine große Lösung für das Senden von Push-Benachrichtigungen zu Cordova apps. Push-Funktionalität wird durch die PushPlugin in Ihrer Anwendung ermöglicht. Die Azure-Plattform eignet in Kombination mit den Daten-Speicher und Authentifizierung der Mobile Services sich für die Unterstützung von Cordova apps. Weitere Informationen zur Verwendung von Azure zum Cross-Plattform-Anwendungen unterstützen, finden Sie im Abschnitt Azure-Dokumentation, "Unterstützen mehrere Gerät Plattformen aus ein einzigen Mobile Service" am aka.ms/w7oq0y. Visual Studio ist nicht nur eine hervorragende Plattform für die Entwicklung von Cordova apps, es ist auch ein großes Werkzeug für die Erstellung und Verwaltung von Azure für Ihre Cordova-Anwendungen.


Glenn Gailey ist ein Programmierer und 14 Jahre-Microsoft-Veteran, Dokumentation und Beispiele für Azure Mobile Services, Notification-Hubs, WCF-Daten erstellt hat, SQL Server CE, Dienstleistungen, SQL Server -Replikation und promoveaza, ADO.NET Entity Framework.  Sie erreichen ihn am glenn.gailey@microsoft.com oder via Twitter an ggailey777.

Unser Dank gilt den folgenden technischen Experten von Microsoft für die Durchsicht dieses Artikels: Suresh Jayabalan, Mike Jones und Piyush Joshi