Pushmeldingen toevoegen aan uw Xamarin.Forms-appAdd push notifications to your Xamarin.Forms app

Notitie

Visual Studio App Center investeert in nieuwe en geïntegreerde services centraal staat in de ontwikkeling van mobiele Apps.Visual Studio App Center is investing in new and integrated services central to mobile app development. Ontwikkelaars kunnen gebruikmaken van bouwen, Test en verdelen services voor het instellen van de pijplijn voor continue integratie en levering.Developers can use Build, Test and Distribute services to set up Continuous Integration and Delivery pipeline. Zodra de app is geïmplementeerd, ontwikkelaars controleren de status en het gebruik van het gebruik van de app de Analytics en Diagnostics -services en Communiceer met gebruikers met behulp van de Push de service.Once the app is deployed, developers can monitor the status and usage of their app using the Analytics and Diagnostics services, and engage with users using the Push service. Ontwikkelaars kunnen ook gebruikmaken van Auth om hun gebruikers te verifiëren en gegevens service behouden en synchroniseren van app-gegevens in de cloud.Developers can also leverage Auth to authenticate their users and Data service to persist and sync app data in the cloud. Bekijk App Center vandaag nog.Check out App Center today.

OverzichtOverview

In deze zelfstudie voegt u pushmeldingen toe aan de projecten die voortvloeien uit de Xamarin.Forms-snelstartgids.In this tutorial, you add push notifications to all the projects that resulted from the Xamarin.Forms quick start. Dit betekent dat een pushmelding wordt verzonden op alle platformen clients telkens wanneer een record wordt ingevoegd.This means that a push notification is sent to all cross-platform clients every time a record is inserted.

Als u het gedownloade quick start-serverproject niet gebruikt, moet u de push notification-uitbreidingspakket.If you do not use the downloaded quick start server project, you will need the push notification extension package. Zie voor meer informatie, werken met de .NET back-endserver SDK voor Azure Mobile Apps.For more information, see Work with the .NET backend server SDK for Azure Mobile Apps.

VereistenPrerequisites

Voor iOS-, moet u een Apple Developer Program-lidmaatschap en een fysiek iOS-apparaat.For iOS, you will need an Apple Developer Program membership and a physical iOS device. De pushmeldingen biedt geen ondersteuning voor iOS-simulator.The iOS simulator does not support push notifications.

Een notification hub configurerenConfigure a notification hub

De functie Mobile Apps van Azure App Service maakt gebruik van Azure Notification Hubs pushes, verzenden, zodat u een notification hub voor uw mobiele app configureren.The Mobile Apps feature of Azure App Service uses Azure Notification Hubs to send pushes, so you will be configuring a notification hub for your mobile app.

  1. In de Azure Portal, gaat u naar App Services, en selecteer vervolgens de back-end van uw app.In the Azure portal, go to App Services, and then select your app back end. Onder instellingen, selecteer Push.Under Settings, select Push.

  2. Selecteer een resource voor notification hub toevoegen aan de app, Connect.To add a notification hub resource to the app, select Connect. U kunt maken van een hub of verbinding maken met een bestaande resourcegroep.You can either create a hub or connect to an existing one.

    Een hub configureren

U hebt nu een notification hub verbonden met uw Mobile Apps-back-end-project.Now you have connected a notification hub to your Mobile Apps back-end project. Later configureert u deze notification hub verbinden met een platform notification system (PNS) om naar apparaten te pushen.Later you configure this notification hub to connect to a platform notification system (PNS) to push to devices.

Bijwerken van het serverproject voor het verzenden van pushmeldingen te verzendenUpdate the server project to send push notifications

In deze sectie kunt u code bijwerken in uw bestaande Mobile Apps-back-end project voor het verzenden van een pushmelding ontvangen wanneer een nieuw item wordt toegevoegd.In this section, you update code in your existing Mobile Apps back-end project to send a push notification every time a new item is added. Dit proces wordt aangestuurd door de sjabloon functie van Azure Notification Hubs, waarmee platformoverschrijdende pushes.This process is powered by the template feature of Azure Notification Hubs, which enables cross-platform pushes. De verschillende clients zijn geregistreerd voor pushmeldingen te verzenden met behulp van sjablonen en een enkele universal push toegang krijgen tot alle clientplatforms.The various clients are registered for push notifications using templates, and a single universal push can get to all client platforms.

Kies een van de volgende procedures die overeenkomt met uw back-end-projecttype—beide .NET-back-end of Node.js-back-end.Choose one of the following procedures that matches your back-end project type—either .NET back end or Node.js back end.

.NET-back-end-project.NET back-end project

  1. Met de rechtermuisknop op de serverproject in Visual Studio.In Visual Studio, right-click the server project. Selecteer vervolgens NuGet-pakketten beheren.Then select Manage NuGet Packages. Zoeken naar Microsoft.Azure.NotificationHubs, en selecteer vervolgens installeren.Search for Microsoft.Azure.NotificationHubs, and then select Install. Dit proces installeert de Notification Hubs-bibliotheek voor het verzenden van meldingen vanuit de back-end.This process installs the Notification Hubs library for sending notifications from the back end.

  2. Open in het serverproject Controllers > TodoItemController.cs.In the server project, open Controllers > TodoItemController.cs. Voeg vervolgens de volgende using-instructies toe:Then add the following using statements:

    using System.Collections.Generic;
    using Microsoft.Azure.NotificationHubs;
    using Microsoft.Azure.Mobile.Server.Config;
    
  3. In de PostTodoItem methode, voeg de volgende code na het aanroepen van InsertAsync:In the PostTodoItem method, add the following code after the call to InsertAsync:

    // Get the settings for the server project.
    HttpConfiguration config = this.Configuration;
    MobileAppSettingsDictionary settings =
        this.Configuration.GetMobileAppSettingsProvider().GetMobileAppSettings();
    
    // Get the Notification Hubs credentials for the mobile app.
    string notificationHubName = settings.NotificationHubName;
    string notificationHubConnection = settings
        .Connections[MobileAppSettingsKeys.NotificationHubConnectionString].ConnectionString;
    
    // Create a new Notification Hub client.
    NotificationHubClient hub = NotificationHubClient
    .CreateClientFromConnectionString(notificationHubConnection, notificationHubName);
    
    // Send the message so that all template registrations that contain "messageParam"
    // receive the notifications. This includes APNS, GCM, WNS, and MPNS template registrations.
    Dictionary<string,string> templateParams = new Dictionary<string,string>();
    templateParams["messageParam"] = item.Text + " was added to the list.";
    
    try
    {
        // Send the push notification and log the results.
        var result = await hub.SendTemplateNotificationAsync(templateParams);
    
        // Write the success result to the logs.
        config.Services.GetTraceWriter().Info(result.State.ToString());
    }
    catch (System.Exception ex)
    {
        // Write the failure result to the logs.
        config.Services.GetTraceWriter()
            .Error(ex.Message, null, "Push.SendAsync Error");
    }
    

    Dit proces verzendt de melding van een sjabloon die het item bevat. Tekst wanneer een nieuw item wordt ingevoegd.This process sends a template notification that contains the item.Text when a new item is inserted.

  4. Het serverproject publiceren.Republish the server project.

Node.js-back-end-projectNode.js back-end project

  1. Als u dit nog niet hebt gedaan, downloaden van het snelstartproject dat back-end, of gebruik anders de online-editor in Azure portal.If you haven't already done so, download the quickstart back-end project, or else use the online editor in the Azure portal.

  2. Vervang de bestaande code in todoitem.js door de volgende code:Replace the existing code in todoitem.js with the following code:

    var azureMobileApps = require('azure-mobile-apps'),
    promises = require('azure-mobile-apps/src/utilities/promises'),
    logger = require('azure-mobile-apps/src/logger');
    
    var table = azureMobileApps.table();
    
    table.insert(function (context) {
    // For more information about the Notification Hubs JavaScript SDK,
    // see https://aka.ms/nodejshubs.
    logger.info('Running TodoItem.insert');
    
    // Define the template payload.
    var payload = '{"messageParam": "' + context.item.text + '" }';  
    
    // Execute the insert. The insert returns the results as a promise.
    // Do the push as a post-execute action within the promise flow.
    return context.execute()
        .then(function (results) {
            // Only do the push if configured.
            if (context.push) {
                // Send a template notification.
                context.push.send(null, payload, function (error) {
                    if (error) {
                        logger.error('Error while sending push notification: ', error);
                    } else {
                        logger.info('Push notification sent successfully!');
                    }
                });
            }
            // Don't forget to return the results from the context.execute().
            return results;
        })
        .catch(function (error) {
            logger.error('Error while running context.execute: ', error);
        });
    });
    
    module.exports = table;  
    

    Dit proces verzendt de melding van een sjabloon met de item.text wanneer een nieuw item wordt ingevoegd.This process sends a template notification that contains the item.text when a new item is inserted.

  3. Wanneer u het bestand op uw lokale computer hebt bewerkt, publiceert u opnieuw het serverproject.When you edit the file on your local computer, republish the server project.

Configureren en uitvoeren van het Android-project (optioneel)Configure and run the Android project (optional)

Voltooi deze sectie om in te schakelen pushmeldingen voor het Xamarin.Forms Droid-project voor Android.Complete this section to enable push notifications for the Xamarin.Forms Droid project for Android.

Firebase Cloud Messaging (FCM) inschakelenEnable Firebase Cloud Messaging (FCM)

  1. Meld u aan bij de Firebase-console.Sign in to the Firebase console. Maak een nieuw Firebase-project als u er nog geen hebt.Create a new Firebase project if you don't already have one.

  2. Nadat u uw project hebt gemaakt, selecteert u Firebase toevoegen aan uw Android-app.After you create your project, select Add Firebase to your Android app.

    Firebase toevoegen aan uw Android-app

  3. Op de Firebase toevoegen aan uw Android-app pagina, de volgende stappen uit:On the Add Firebase to your Android app page, take the following steps:

    1. Voor Android pakketnaam, Kopieer de waarde van uw applicationId build.gradle-bestand van uw toepassing.For Android package name, copy the value of your applicationId in your application's build.gradle file. In dit voorbeeld heeft com.fabrikam.fcmtutorial1app.In this example, it's com.fabrikam.fcmtutorial1app.

      Geef de naam van het pakket

    2. Selecteer app registreren.Select Register app.

  4. Selecteer downloaden van google-services.json, sla het bestand in de app map van uw project en selecteer vervolgens volgende.Select Download google-services.json, save the file into the app folder of your project, and then select Next.

    Google-services.json downloaden

  5. Controleer het volgende configuratiewijzigingen aan uw project in Android Studio.Make the following configuration changes to your project in Android Studio.

    1. In uw project op serverniveau build.gradle-bestand (<project>/build.gradle), de volgende instructie voor toevoegen de afhankelijkheden sectie.In your project-level build.gradle file (<project>/build.gradle), add the following statement to the dependencies section.

      classpath 'com.google.gms:google-services:4.0.1'
      
    2. In uw app-niveau build.gradle-bestand (<project>/<app-module>/build.gradle), de volgende instructie voor toevoegen de afhankelijkheden sectie.In your app-level build.gradle file (<project>/<app-module>/build.gradle), add the following statement to the dependencies section.

      implementation 'com.google.firebase:firebase-core:16.0.1'
      
    3. Voeg de volgende regel aan het einde van het app-niveau build.gradle-bestand na het gedeelte met afhankelijkheden.Add the following line to the end of the app-level build.gradle file after the dependencies section.

      apply plugin: 'com.google.gms.google-services'
      
    4. Selecteer nu synchroniseren op de werkbalk.Select Sync now on the toolbar.

      build.gradle configuratiewijzigingen

  6. Selecteer Next.Select Next.

  7. Selecteer Sla deze stap over.Select Skip this step.

    De laatste stap overslaan

  8. Selecteer in de Firebase-console het tandwiel van uw project.In the Firebase console, select the cog for your project. Selecteer vervolgens Projectinstellingen.Then select Project Settings.

    Selecteer Projectinstellingen

  9. Als u het google-services.json-bestand in dit nog niet hebt gedownload de app map van uw Android Studio-project, kunt u doen dit op deze pagina.If you haven't downloaded the google-services.json file into the app folder of your Android Studio project, you can do so on this page.

  10. Schakel over naar de Cloud Messaging tabblad bovenaan.Switch to the Cloud Messaging tab at the top.

  11. Kopieer en bewaar de serversleutel voor later gebruik.Copy and save the Server key for later use. In dat geval gebruikt u deze waarde in voor uw hub configureren.You use this value to configure your hub.

De back-end voor mobiele Apps voor het verzenden van pushmeldingen aanvragen via FCM configurerenConfigure the Mobile Apps back end to send push requests by using FCM

  1. In de Azure-portal, selecteer door alles bladeren > App Services.In the Azure portal, select Browse All > App Services. Vervolgens Selecteer uw Mobile Apps-back-end.Then select your Mobile Apps back end.
  2. Onder instellingen, selecteer Push.Under Settings, select Push. Selecteer vervolgens configureren push notification services.Then select Configure push notification services.
  3. Ga naar Google (GCM) .Go to Google (GCM). Voer de FCM oude server-sleutel die u hebt verkregen via de Firebase-console en selecteer vervolgens opslaan.Enter the FCM legacy server key that you obtained from the Firebase console, and then select Save.

Uw service is nu geconfigureerd voor Firebase Cloud Messaging.Your service is now configured to work with Firebase Cloud Messaging.

Pushmeldingen toevoegen aan de Android-projectAdd push notifications to the Android project

U kunt met de back-end geconfigureerd met FCM, onderdelen en -codes toevoegen aan de client om te registreren bij FCM.With the back end configured with FCM, you can add components and codes to the client to register with FCM. U kunt ook registreren voor pushmeldingen kunt verzenden met Azure Notification Hubs via de back-end van Mobile Apps en meldingen ontvangen.You can also register for push notifications with Azure Notification Hubs through the Mobile Apps back end, and receive notifications.

  1. In de Droid project, met de rechtermuisknop op verwijzingen > NuGet-pakketten beheren... .In the Droid project, right-click References > Manage NuGet Packages ....
  2. Zoek in het venster NuGet Package Manager de Xamarin.Firebase.Messaging pakket en voeg deze toe aan het project.In the NuGet Package Manager window, search for the Xamarin.Firebase.Messaging package and add it to the project.
  3. In de Projecteigenschappen voor de Droid project, stelt u de app compileren met behulp van Android-versie 7.0 of hoger.In the project properties for the Droid project, set the app to compile using Android version 7.0 or higher.
  4. Voeg de google-services.json bestand gedownload uit de Firebase-console naar de hoofdmap van de Droid project en de bijbehorende build-actie ingesteld op GoogleServicesJson.Add the google-services.json file, downloaded from the Firebase console, to the root of the Droid project and set its build action to GoogleServicesJson. Zie voor meer informatie, toevoegen van het JSON-bestand van Google Services.For more information, see Add the Google Services JSON File.

Firebase Cloud Messaging registrerenRegistering with Firebase Cloud Messaging

  1. Open het bestand AndroidManifest.xml en voeg de volgende <receiver>-elementen toe aan het element <application>:Open the AndroidManifest.xml file and insert the following <receiver> elements into the <application> element:

    <receiver android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver" android:exported="false" />
    <receiver android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND">
        <intent-filter>
        <action android:name="com.google.android.c2dm.intent.RECEIVE" />
        <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
        <category android:name="${applicationId}" />
        </intent-filter>
    </receiver>
    

Implementatie van de Service Firebase exemplaar-IDImplementing the Firebase Instance ID Service

  1. Voeg een nieuwe klasse aan de Droid project met de naam FirebaseRegistrationService, en zorg ervoor dat de volgende using instructies toe aan de bovenkant van het bestand aanwezig zijn:Add a new class to the Droid project named FirebaseRegistrationService, and make sure that the following using statements are present at the top of the file:

    using System.Threading.Tasks;
    using Android.App;
    using Android.Util;
    using Firebase.Iid;
    using Microsoft.WindowsAzure.MobileServices;
    
  2. Vervang de lege FirebaseRegistrationService klasse met de volgende code:Replace the empty FirebaseRegistrationService class with the following code:

    [Service]
    [IntentFilter(new[] { "com.google.firebase.INSTANCE_ID_EVENT" })]
    public class FirebaseRegistrationService : FirebaseInstanceIdService
    {
        const string TAG = "FirebaseRegistrationService";
    
        public override void OnTokenRefresh()
        {
            var refreshedToken = FirebaseInstanceId.Instance.Token;
            Log.Debug(TAG, "Refreshed token: " + refreshedToken);
            SendRegistrationTokenToAzureNotificationHub(refreshedToken);
        }
    
        void SendRegistrationTokenToAzureNotificationHub(string token)
        {
            // Update notification hub registration
            Task.Run(async () =>
            {
                await AzureNotificationHubService.RegisterAsync(TodoItemManager.DefaultManager.CurrentClient.GetPush(), token);
            });
        }
    }
    

    De FirebaseRegistrationService klasse is verantwoordelijk voor het genereren van beveiligingstokens die de toepassing te krijgen tot FCM.The FirebaseRegistrationService class is responsible for generating security tokens that authorize the application to access FCM. De OnTokenRefresh methode wordt aangeroepen wanneer de toepassing een registratietoken van FCM ontvangt.The OnTokenRefresh method is invoked when the application receives a registration token from FCM. De methode haalt de token van de FirebaseInstanceId.Instance.Token eigenschap, die asynchroon door FCM wordt bijgewerkt.The method retrieves the token from the FirebaseInstanceId.Instance.Token property, which is asynchronously updated by FCM. De OnTokenRefresh methode zelden aangeroepen, omdat het token wordt alleen bijgewerkt wanneer de toepassing wordt geïnstalleerd of verwijderd, wanneer de gebruiker toepassingsgegevens, verwijdert wanneer de toepassing de exemplaar-ID worden gewist, of wanneer de beveiliging van het token is aangetast.The OnTokenRefresh method is infrequently invoked, because the token is only updated when the application is installed or uninstalled, when the user deletes application data, when the application erases the Instance ID, or when the security of the token has been compromised. Bovendien wordt de FCM-exemplaar-id-service verzoeken dat de toepassing Hiermee vernieuwt u de token periodiek, doorgaans elke 6 maanden.In addition, the FCM Instance ID service will request that the application refreshes its token periodically, typically every 6 months.

    De OnTokenRefresh methode ook roept de SendRegistrationTokenToAzureNotificationHub methode, die wordt gebruikt om te koppelen aan de Azure Notification Hub-registratietoken van de gebruiker.The OnTokenRefresh method also invokes the SendRegistrationTokenToAzureNotificationHub method, which is used to associate the user's registration token with the Azure Notification Hub.

Registratie bij de Azure Notification HubRegistering with the Azure Notification Hub

  1. Voeg een nieuwe klasse aan de Droid project met de naam AzureNotificationHubService, en zorg ervoor dat de volgende using instructies toe aan de bovenkant van het bestand aanwezig zijn:Add a new class to the Droid project named AzureNotificationHubService, and make sure that the following using statements are present at the top of the file:

    using System;
    using System.Threading.Tasks;
    using Android.Util;
    using Microsoft.WindowsAzure.MobileServices;
    using Newtonsoft.Json.Linq;
    
  2. Vervang de lege AzureNotificationHubService klasse met de volgende code:Replace the empty AzureNotificationHubService class with the following code:

    public class AzureNotificationHubService
    {
        const string TAG = "AzureNotificationHubService";
    
        public static async Task RegisterAsync(Push push, string token)
        {
            try
            {
                const string templateBody = "{\"data\":{\"message\":\"$(messageParam)\"}}";
                JObject templates = new JObject();
                templates["genericMessage"] = new JObject
                {
                    {"body", templateBody}
                };
    
                await push.RegisterAsync(token, templates);
                Log.Info("Push Installation Id: ", push.InstallationId.ToString());
            }
            catch (Exception ex)
            {
                Log.Error(TAG, "Could not register with Notification Hub: " + ex.Message);
            }
        }
    }
    

    De RegisterAsync methode maakt u een sjabloon voor een eenvoudige melding als JSON en registers Sjabloonmeldingen ontvangen van de notification hub, met behulp van de Firebase-registratietoken.The RegisterAsync method creates a simple notification message template as JSON, and registers to receive template notifications from the notification hub, using the Firebase registration token. Dit zorgt ervoor dat het apparaat dat wordt vertegenwoordigd door de registratietoken heeft betrekking op alle meldingen worden verzonden vanuit de Azure Notification Hub.This ensures that any notifications sent from the Azure Notification Hub will target the device represented by the registration token.

De inhoud van een Push-bericht weergevenDisplaying the Contents of a Push Notification

  1. Voeg een nieuwe klasse aan de Droid project met de naam FirebaseNotificationService, en zorg ervoor dat de volgende using instructies toe aan de bovenkant van het bestand aanwezig zijn:Add a new class to the Droid project named FirebaseNotificationService, and make sure that the following using statements are present at the top of the file:

    using Android.App;
    using Android.Content;
    using Android.Media;
    using Android.Support.V7.App;
    using Android.Util;
    using Firebase.Messaging;
    
  2. Vervang de lege FirebaseNotificationService klasse met de volgende code:Replace the empty FirebaseNotificationService class with the following code:

    [Service]
    [IntentFilter(new[] { "com.google.firebase.MESSAGING_EVENT" })]
    public class FirebaseNotificationService : FirebaseMessagingService
    {
        const string TAG = "FirebaseNotificationService";
    
        public override void OnMessageReceived(RemoteMessage message)
        {
            Log.Debug(TAG, "From: " + message.From);
    
            // Pull message body out of the template
            var messageBody = message.Data["message"];
            if (string.IsNullOrWhiteSpace(messageBody))
                return;
    
            Log.Debug(TAG, "Notification message body: " + messageBody);
            SendNotification(messageBody);
        }
    
        void SendNotification(string messageBody)
        {
            var intent = new Intent(this, typeof(MainActivity));
            intent.AddFlags(ActivityFlags.ClearTop);
            var pendingIntent = PendingIntent.GetActivity(this, 0, intent, PendingIntentFlags.OneShot);
    
            var notificationBuilder = new NotificationCompat.Builder(this)
                .SetSmallIcon(Resource.Drawable.ic_stat_ic_notification)
                .SetContentTitle("New Todo Item")
                .SetContentText(messageBody)
                .SetContentIntent(pendingIntent)
                .SetSound(RingtoneManager.GetDefaultUri(RingtoneType.Notification))
                .SetAutoCancel(true);
    
            var notificationManager = NotificationManager.FromContext(this);
            notificationManager.Notify(0, notificationBuilder.Build());
        }
    }
    

    De OnMessageReceived methode, die wordt aangeroepen wanneer een toepassing een melding van FCM ontvangt, pakt u het bericht inhoud en roept de SendNotification methode.The OnMessageReceived method, which is invoked when an application receives a notification from FCM, extracts the message content, and calls the SendNotification method. Deze methode zet de inhoud van het bericht in een lokale melding die wordt gestart, terwijl de toepassing wordt uitgevoerd, met de melding wordt weergegeven in het systeemvak.This method converts the message content into a local notification that's launched while the application is running, with the notification appearing in the notification area.

U bent nu klaar testpushmeldingen in de app die wordt uitgevoerd op een Android-apparaat of de emulator.Now, you are ready test push notifications in the app running on an Android device or the emulator.

Testpushmeldingen in uw Android-appTest push notifications in your Android app

De eerste twee stappen zijn vereist, alleen wanneer u op een emulator test.The first two steps are required only when you're testing on an emulator.

  1. Zorg ervoor dat u implementeert op of foutopsporing op een apparaat of emulator die is geconfigureerd met Google Play Services.Make sure that you are deploying to or debugging on a device or emulator that is configured with Google Play Services. U kunt dit controleren door te controleren dat de afspelen apps zijn geïnstalleerd op het apparaat of emulator.This can be verified by checking that the Play apps are installed on the device or emulator.
  2. Een Google-account toevoegen aan de Android-apparaat door te klikken op Apps > instellingen > account toevoegen.Add a Google account to the Android device by clicking Apps > Settings > Add account. Volg de instructies in een bestaand Google-account toevoegen aan het apparaat of een nieuwe maken.Then follow the prompts to add an existing Google account to the device, or to create a new one.
  3. In Visual Studio of Xamarin Studio, met de rechtermuisknop op de Droid project en klik op instellen als opstartproject.In Visual Studio or Xamarin Studio, right-click the Droid project and click Set as startup project.
  4. Klik op uitvoeren bouw het project en de app op uw Android-apparaat of emulator te starten.Click Run to build the project and start the app on your Android device or emulator.
  5. In de app, typt u een taak en klik vervolgens op het plusteken ( + ) pictogram.In the app, type a task, and then click the plus (+) icon.
  6. Controleer of dat er een melding wordt ontvangen wanneer een item wordt toegevoegd.Verify that a notification is received when an item is added.

Configureren en uitvoeren van het iOS-project (optioneel)Configure and run the iOS project (optional)

Deze sectie gaat over het uitvoeren van het Xamarin iOS-project voor iOS-apparaten.This section is for running the Xamarin iOS project for iOS devices. Als u niet met iOS-apparaten werkt, kunt u deze sectie overslaan.You can skip this section if you are not working with iOS devices.

Het bestand met de aanvraag ondertekenen van certificaten genererenGenerate the certificate-signing request file

De Apple Push Notification Service (APNs) maakt gebruik van certificaten voor verificatie van uw pushmeldingen te verzenden.The Apple Push Notification Service (APNs) uses certificates to authenticate your push notifications. Volg deze instructies om het pushcertificaat te maken dat vereist is om meldingen te verzenden en te ontvangen.Follow these instructions to create the necessary push certificate to send and receive notifications. Zie de officiële documentatie van de Apple Push Notification Service voor meer informatie over deze concepten.For more information on these concepts, see the official Apple Push Notification Service documentation.

Genereer het Certificate Signing Request (CSR)-bestand dat gebruikmaakt van Apple voor het genereren van een ondertekend pushcertificaat.Generate the Certificate Signing Request (CSR) file, which Apple uses to generate a signed push certificate.

  1. Voer op uw Mac het hulpprogramma Sleutelhangertoegang uit.On your Mac, run the Keychain Access tool. Kan worden geopend vanuit de hulpprogramma's voor map of het andere map op de Launchpad.It can be opened from the Utilities folder or the Other folder on the Launchpad.

  2. Selecteer toegang tot sleutelhanger, vouw Certificaatassistent, en selecteer vervolgens een certificaat aanvragen bij een certificeringsinstantie.Select Keychain Access, expand Certificate Assistant, and then select Request a Certificate from a Certificate Authority.

    Toegang tot sleutelhanger gebruiken om een nieuw certificaat aan te vragen

  3. Selecteer uw e-mailadres gebruiker, Voer uw algemene naam waarde, zorg ervoor dat u opgeeft opgeslagen op schijf, en selecteer vervolgens doorgaan.Select your User Email Address, enter your Common Name value, make sure that you specify Saved to disk, and then select Continue. Laat e-mailadres CA leeg als het is niet vereist.Leave CA Email Address blank as it isn't required.

    Vereiste certificaatgegevens

  4. Voer een naam voor het CSR-bestand in OpslaanAls, selecteert u de locatie in waar, en selecteer vervolgens opslaan.Enter a name for the CSR file in Save As, select the location in Where, and then select Save.

    Kies een bestandsnaam op voor het certificaat

    Deze actie wordt het CSR-bestand opgeslagen in de geselecteerde locatie.This action saves the CSR file in the selected location. De standaardlocatie is Desktop.The default location is Desktop. Onthoud de locatie die u voor het bestand hebt gekozen.Remember the location chosen for the file.

Vervolgens uw app registreren bij Apple, pushmeldingen inschakelen en de geëxporteerde CSR voor het maken van een push-certificaat uploaden.Next, register your app with Apple, enable push notifications, and upload the exported CSR to create a push certificate.

Uw app voor pushmeldingen registrerenRegister your app for push notifications

Als u wilt pushmeldingen verzenden naar een iOS-app, uw toepassing registreren met Apple en zich ook registreren voor pushmeldingen te verzenden.To push notifications to an iOS app, register your application with Apple and also register for push notifications.

  1. Als u uw app nog niet hebt geregistreerd, gaat u naar de iOS-Inrichtingsportal bij het Apple Developer Center.If you haven't already registered your app, browse to the iOS Provisioning Portal at the Apple Developer Center. Hierna, zich aanmelden met uw Apple-ID, selecteer id's, selecteer App-id's, en selecteer tot slot + om een nieuwe app te registreren.After that, sign in with your Apple ID, select Identifiers, select App IDs, and finally select + to register a new app.

    App-id-pagina van iOS-inrichtingsportal

  2. Werk de volgende drie waarden voor uw nieuwe app en selecteer vervolgens doorgaan:Update the following three values for your new app, and then select Continue:

    • Naam: Typ een beschrijvende naam voor uw app in de naam vak de beschrijving App-ID sectie.Name: Type a descriptive name for your app in the Name box in the App ID Description section.

    • Bundel-id: In de expliciete App-ID sectie, voer een bundel-id van het formulier <Organization Identifier>.<Product Name> zoals vermeld in de App Distribution Guide.Bundle Identifier: In the Explicit App ID section, enter a Bundle Identifier of the form <Organization Identifier>.<Product Name> as mentioned in the App Distribution Guide. De organisatie-id en Productnaam waarden moeten overeenkomen met de organisatie-id en product naam die u gebruikt wanneer u uw Xcode-project maakt.The Organization Identifier and Product Name values must match the organization identifier and product name you use when you create your Xcode project. In de volgende schermopname is de NotificationHubs waarde wordt gebruikt als een organisatie-id en de GetStarted waarde wordt gebruikt als naam van het product.In the following screenshot, the NotificationHubs value is used as an organization identifier and the GetStarted value is used as the product name. Zorg ervoor dat de bundel-id waarde komt overeen met de waarde in uw Xcode-project, zodat het juiste publicatieprofiel Xcode gebruikt.Make sure the Bundle Identifier value matches the value in your Xcode project, so that Xcode will use the correct publishing profile.

    • Pushmeldingen verzenden: Controleer de Pushmeldingen optie in de App Services sectie.Push Notifications: Check the Push Notifications option in the App Services section.

      Formulier voor het registreren van een nieuwe app-id

      Deze actie wordt gegenereerd voor uw App-ID en aanvragen dat u bevestigen dat de gegevens.This action generates your App ID and requests that you confirm the information. Selecteer registreren om te bevestigen van de nieuwe App-ID.Select Register to confirm the new App ID.

      Nadat u hebt geselecteerd registreren, ziet u de registratie voltooid scherm, zoals wordt weergegeven in de volgende afbeelding.After you select Register, you see the Registration complete screen as shown in the following image. Selecteer Done.Select Done.

      App-id-registratie voltooid met rechten

  3. In het ontwikkelaarscentrum onder App-id's, zoek de app-ID die u hebt gemaakt en selecteer de rij.In the Developer Center, under App IDs, locate the app ID that you created and select its row.

    Lijst met app-id

    Selecteer de app-ID moet de app-gegevens weergeven en selecteer vervolgens de bewerken knop aan de onderkant.Select the app ID to display the app details, and then select the Edit button at the bottom.

    Pagina app-id bewerken

  4. Ga naar de onderkant van het scherm en selecteer de certificaat maken knop onder de ontwikkeling Push-SSL-certificaat sectie.Scroll to the bottom of the screen and select the Create Certificate button under the Development Push SSL Certificate section.

    Certificaat voor app-id-knop maken

    U nu Zie de iOS-certificaat toevoegen assistent.You now see the Add iOS Certificate assistant.

    Notitie

    In deze zelfstudie wordt een ontwikkelingscertificaat gebruikt.This tutorial uses a development certificate. Hetzelfde proces wordt gebruikt bij het registreren van een productiecertificaat.The same process is used when registering a production certificate. Zorg er wel voor dat u hetzelfde certificaattype gebruikt als u meldingen verzendt.Just make sure that you use the same certificate type when sending notifications.

  5. Selecteer bestand kiezen, blader naar de locatie waar u het CSR-bestand van de eerste taak hebt opgeslagen, en selecteer vervolgens genereren.Select Choose File, browse to the location where you saved the CSR file from the first task, and then select Generate.

    Upload-pagina voor gemaakte certificaat-CSR

  6. Nadat het certificaat is gemaakt in de portal, selecteert u de downloaden knop en selecteer vervolgens gedaan.After the portal creates the certificate, select the Download button and then select Done.

    Download-pagina voor gemaakte certificaat

    Het certificaat is gedownload en opgeslagen op uw computer in uw Downloads map.The certificate is downloaded and saved to your computer in your Downloads folder.

    Certificaatbestand zoeken in de map Downloads

    Notitie

    Standaard de gedownloade ontwikkelingscertificaat heet aps_development.cer.By default, the downloaded development certificate is named aps_development.cer.

  7. Selecteer het gedownloade pushcertificaat aps_development.cer.Select the downloaded push certificate aps_development.cer.

    Nu wordt het nieuwe certificaat in de sleutelhanger geïnstalleerd, zoals op de volgende afbeelding wordt weergegeven:This action installs the new certificate in the Keychain, as shown in the following image:

    Certificatenlijst in Sleutelhangertoegang geeft nieuw certificaat weer

    Notitie

    Hoewel de naam in het certificaat afwijken kan, de naam wordt voorafgegaan door Apple Development iOS Push Services.Although the name in your certificate might be different, the name will be prefixed with Apple Development iOS Push Services.

  8. In Sleutelhangertoegang klikt u met de rechtermuisknop op het nieuwe pushcertificaat dat u hebt gemaakt in de categorie Certificaten.In Keychain Access, right-click the new push certificate that you created in the Certificates category. Selecteer exporteren, Noem het bestand, selecteer de .p12 opmaken en selecteer vervolgens opslaan.Select Export, name the file, select the .p12 format, and then select Save.

    Certificaat exporteren in p12-indeling

    Noteer de bestandsnaam en locatie van het geëxporteerde .p12-certificaat.Make a note of the file name and location of the exported .p12 certificate. Ze worden gebruikt voor het inschakelen van verificatie met APNs.They are used to enable authentication with APNs.

    Notitie

    Deze zelfstudie maakt u een bestand met de naam QuickStart.p12.This tutorial creates a file named QuickStart.p12. De naam en locatie van uw bestand kunnen afwijken.Your file name and location might be different.

Een inrichtingsprofiel voor de app makenCreate a provisioning profile for the app

  1. In de iOS-Inrichtingsportal, selecteer Inrichtingsprofielen, selecteer alle, en selecteer vervolgens + maken een nieuw profiel.In the iOS Provisioning Portal, select Provisioning Profiles, select All, and then select + to create a new profile. U ziet de toevoegen van iOS-profiel voor inrichting wizard.You see the Add iOS Provisioning Profile wizard.

    Lijst met inrichtingsprofielen

  2. Selecteer ontwikkeling iOS-App onder ontwikkeling profieltype als de inrichting en selecteer doorgaan.Select iOS App Development under Development as the provisioning profile type, and select Continue.

  3. Selecteer vervolgens de app-ID die u hebt gemaakt van de App-ID vervolgkeuzelijst en selecteer doorgaan.Next, select the app ID you created from the App ID drop-down list, and select Continue.

    Selecteer de app-id

  4. In de certificaten selecteren venster, selecteert u het ontwikkelingscertificaat dat u voor ondertekening van programmacode gebruikt en selecteer doorgaan.In the Select certificates window, select your usual development certificate that you used for code signing, and select Continue. Dit certificaat is niet het pushcertificaat dat u hebt gemaakt.This certificate isn't the push certificate you created.

    Het certificaat selecteren

  5. Vervolgens selecteert u de apparaten die worden gebruikt voor het testen en selecteer doorgaan.Next, select the devices to use for testing, and select Continue.

    De apparaten selecteren

  6. Kies tot slot een naam voor het profiel in profielnaam, en selecteer genereren.Finally, pick a name for the profile in Profile Name, and select Generate.

    Een naam kiezen voor het inrichtingsprofiel

  7. Wanneer het nieuwe inrichtingsprofiel is gemaakt, kunt u kiezen om te downloaden en installeren op uw ontwikkelcomputer Xcode.When the new provisioning profile is created, choose to download and install it on your Xcode development machine. Selecteer vervolgens Done.Then select Done.

    Het inrichtingsprofiel downloaden

Een Notification Hub makenCreate a notification hub

In deze sectie maakt u een notification hub maken en configureren van verificatie met APNs met behulp van het .p12-pushcertificaat dat u eerder hebt gemaakt.In this section, you create a notification hub and configure authentication with APNs by using the .p12 push certificate that you previously created. Als u gebruiken een notification hub die u al hebt gemaakt wilt, kunt u doorgaan met stap 5.If you want to use a notification hub that you've already created, you can skip to step 5.

  1. Meld u aan bij Azure Portal.Sign in to the Azure portal.

  2. Selecteer alle services op het menu aan de linkerkant en selecteer vervolgens Notification Hubs in de Mobile sectie.Select All services on the left menu, and then select Notification Hubs in the Mobile section. Selecteer het sterpictogram naast de naam van de service toe te voegen van de service de Favorieten sectie in het menu links.Select the star icon next to the service name to add the service to the FAVORITES section on the left menu. Nadat u hebt toegevoegd Notification Hubs naar Favorieten, selecteert u deze in het menu links.After you add Notification Hubs to FAVORITES, select it on the left menu.

    Azure Portal - Notification Hubs selecteren

  3. Op de Notification Hubs-pagina selecteert u Toevoegen op de werkbalk.On the Notification Hubs page, select Add on the toolbar.

    Toevoegen van Notification Hubs - knop op de werkbalk

  4. Voer op de pagina Notification Hub de volgende stappen uit:On the Notification Hub page, do the following steps:

    1. Voer een naam in Notification Hub.Enter a name in Notification Hub.

    2. Voer een naam in maken van een nieuwe naamruimte.Enter a name in Create a new namespace. Een naamruimte bevat een of meer hubs.A namespace contains one or more hubs.

    3. Selecteer een waarde van de locatie vervolgkeuzelijst met box.Select a value from the Location drop-down list box. Deze waarde geeft de locatie waarin u wilt maken van de hub.This value specifies the location in which you want to create the hub.

    4. Selecteer een bestaande resourcegroep in resourcegroep, of een naam voor een nieuwe resourcegroep maken.Select an existing resource group in Resource Group, or create a name for a new resource group.

    5. Selecteer Maken.Select Create.

      Azure Portal - eigenschappen van de Notification Hub instellen

  5. Selecteer meldingen (het belpictogram), en selecteer vervolgens naar de resource gaan.Select Notifications (the bell icon), and then select Go to resource. U kunt ook de lijst vernieuwen op de Notification Hubs pagina en selecteer uw hub.You can also refresh the list on the Notification Hubs page and select your hub.

    Azure Portal - Meldingen -> Naar de resource gaan

  6. Selecteer Toegangsbeleid in de lijst.Select Access Policies from the list. Houd er rekening mee dat de twee verbindingsreeksen voor u beschikbaar zijn.Note that the two connection strings are available to you. U moet ze later voor het afhandelen van pushmeldingen.You'll need them later to handle push notifications.

    Belangrijk

    Voer niet gebruiken de DefaultFullSharedAccessSignature beleid in uw toepassing.Do not use the DefaultFullSharedAccessSignature policy in your application. Dit is bedoeld om te worden gebruikt in uw back-end alleen.This is meant to be used in your back end only.

    Azure Portal - verbindingsreeksen voor de Notification Hub

Uw notification hub configureren met APNs-informatieConfigure your notification hub with APNs information

  1. Selecteer Apple (APNS) onder Notification Services.Under Notification Services, select Apple (APNS).

  2. Selecteer Certificaat.Select Certificate.

  3. Selecteer het pictogram van het bestand.Select the file icon.

  4. Selecteer het .p12-bestand dat u eerder hebt geëxporteerd.Select the .p12 file that you exported earlier.

  5. Geef het juiste wachtwoord.Specify the correct password.

  6. Selecteer de modus Sandbox.Select Sandbox mode. Gebruik de modus Productie alleen als u pushmeldingen wilt verzenden naar gebruikers die uw app in de Store hebben gekocht.Use the Production mode only if you want to send push notifications to users who purchased your app from the store.

    APNs-certificering in Azure Portal configureren

U hebt nu uw notification hub geconfigureerd met APNs.You've now configured your notification hub with APNs. U hebt ook de verbindingsreeksen voor uw app registreren en pushmeldingen te verzenden.You also have the connection strings to register your app and send push notifications.

De notification hub configureren voor APN 'sConfigure the notification hub for APNS

  1. Start op uw Mac toegang tot sleutelhanger.On your Mac, launch Keychain Access. Op de linkernavigatiebalk onder categorieOpen mijn certificaten.On the left navigation bar, under Category, open My Certificates. Zoek het SSL-certificaat dat u hebt gedownload in de vorige sectie en vervolgens de inhoud ervan te vermelden.Find the SSL certificate that you downloaded in the previous section, and then disclose its contents. Selecteer alleen het certificaat (niet de persoonlijke sleutel selecteren).Select only the certificate (do not select the private key). Vervolgens exporteren.Then export it.
  2. In de Azure-portal, selecteer door alles bladeren > App Services.In the Azure portal, select Browse All > App Services. Vervolgens Selecteer uw Mobile Apps-back-end.Then select your Mobile Apps back end.
  3. Onder instellingen, selecteer App Service-Push.Under Settings, select App Service Push. Selecteer vervolgens de naam van uw notification hub.Then select your notification hub name.
  4. Ga naar Apple Push Notification Services > -certificaat uploaden.Go to Apple Push Notification Services > Upload Certificate. Upload het .p12-bestand selecteren van de juiste modus (afhankelijk van of uw SSL-clientcertificaat uit eerder is productie- of sandbox).Upload the .p12 file, selecting the correct Mode (depending on whether your client SSL certificate from earlier is production or sandbox). Wijzigingen opslaan.Save any changes.

Uw service is nu geconfigureerd om te werken met pushmeldingen in iOS.Your service is now configured to work with push notifications on iOS.

Vervolgens configureert u de instelling van de iOS-project in Xamarin Studio of Visual Studio.Next, you will configure the iOS project setting in Xamarin Studio or Visual Studio.

Het iOS-project in Xamarin Studio configurerenConfigure the iOS project in Xamarin Studio

  1. Open in Xamarin.Studio, Info.plist, en werk de bundel-id met de bundel-ID die u eerder hebt gemaakt met uw nieuwe app-ID.In Xamarin.Studio, open Info.plist, and update the Bundle Identifier with the bundle ID that you created earlier with your new app ID.

  2. Schuif omlaag naar Achtergrondmodi.Scroll down to Background Modes. Selecteer de Enable Background Modes vak en de Remote notifications vak.Select the Enable Background Modes box and the Remote notifications box.

  3. Dubbelklik op uw project in het deelvenster van de oplossing openen Projectopties.Double-click your project in the Solution Panel to open Project Options.

  4. Onder bouwen, kiest u iOS-bundel ondertekening, selecteert u de overeenkomstige id en het inrichtingsprofiel voor u zojuist hebt ingesteld om voor dit project.Under Build, choose iOS Bundle Signing, and select the corresponding identity and provisioning profile you just set up for this project.

    Dit zorgt ervoor dat het project gebruikmaakt van het nieuwe profiel voor het ondertekenen van code.This ensures that the project uses the new profile for code signing. Zie voor de officiële Xamarin voor apparaatinrichting documentatie, Xamarin voor Apparaatinrichting.For the official Xamarin device provisioning documentation, see Xamarin Device Provisioning.

Configureren van het iOS-project in Visual StudioConfigure the iOS project in Visual Studio

  1. Met de rechtermuisknop op het project in Visual Studio en klik vervolgens op eigenschappen.In Visual Studio, right-click the project, and then click Properties.

  2. Klik in de eigenschappen van pagina's, op de iOS-toepassing tabblad en werk de id met de ID die u eerder hebt gemaakt.In the properties pages, click the iOS Application tab, and update the Identifier with the ID that you created earlier.

  3. In de iOS-bundel ondertekening tabblad, selecteert u de identiteit van de bijbehorende en inrichtingsprofiel dat u net hebt ingesteld voor dit project.In the iOS Bundle Signing tab, select the corresponding identity and provisioning profile you just set up for this project.

    Dit zorgt ervoor dat het project gebruikmaakt van het nieuwe profiel voor het ondertekenen van code.This ensures that the project uses the new profile for code signing. Zie voor de officiële Xamarin voor apparaatinrichting documentatie, Xamarin voor Apparaatinrichting.For the official Xamarin device provisioning documentation, see Xamarin Device Provisioning.

  4. Dubbelklik op Info.plist te openen en schakel vervolgens RemoteNotifications onder Achtergrondmodi.Double-click Info.plist to open it, and then enable RemoteNotifications under Background Modes.

Pushmeldingen toevoegen aan uw iOS-appAdd push notifications to your iOS app

  1. In de iOS project, opent u AppDelegate.cs en de volgende instructie toe te voegen aan het begin van het codebestand.In the iOS project, open AppDelegate.cs and add the following statement to the top of the code file.

    using Newtonsoft.Json.Linq;
    
  2. In de AppDelegate klasse, voegt u een onderdrukking voor de RegisteredForRemoteNotifications gebeurtenis zich registreren voor meldingen:In the AppDelegate class, add an override for the RegisteredForRemoteNotifications event to register for notifications:

    public override void RegisteredForRemoteNotifications(UIApplication application,
        NSData deviceToken)
    {
        const string templateBodyAPNS = "{\"aps\":{\"alert\":\"$(messageParam)\"}}";
    
        JObject templates = new JObject();
        templates["genericMessage"] = new JObject
            {
                {"body", templateBodyAPNS}
            };
    
        // Register for push with your mobile app
        Push push = TodoItemManager.DefaultManager.CurrentClient.GetPush();
        push.RegisterAsync(deviceToken, templates);
    }
    
  3. In AppDelegate, ook toevoegen de volgende onderdrukking voor de DidReceiveRemoteNotification gebeurtenis-handler:In AppDelegate, also add the following override for the DidReceiveRemoteNotification event handler:

    public override void DidReceiveRemoteNotification(UIApplication application,
        NSDictionary userInfo, Action<UIBackgroundFetchResult> completionHandler)
    {
        NSDictionary aps = userInfo.ObjectForKey(new NSString("aps")) as NSDictionary;
    
        string alert = string.Empty;
        if (aps.ContainsKey(new NSString("alert")))
            alert = (aps[new NSString("alert")] as NSString).ToString();
    
        //show alert
        if (!string.IsNullOrEmpty(alert))
        {
            UIAlertView avAlert = new UIAlertView("Notification", alert, null, "OK", null);
            avAlert.Show();
        }
    }
    

    Deze methode verwerkt de inkomende meldingen terwijl de app wordt uitgevoerd.This method handles incoming notifications while the app is running.

  4. In de AppDelegate klasse, voeg de volgende code aan de FinishedLaunching methode:In the AppDelegate class, add the following code to the FinishedLaunching method:

    // Register for push notifications.
    var settings = UIUserNotificationSettings.GetSettingsForTypes(
        UIUserNotificationType.Alert
        | UIUserNotificationType.Badge
        | UIUserNotificationType.Sound,
        new NSSet());
    
    UIApplication.SharedApplication.RegisterUserNotificationSettings(settings);
    UIApplication.SharedApplication.RegisterForRemoteNotifications();
    

    Dit biedt ondersteuning voor externe meldingen en aanvragen voor push-registratie.This enables support for remote notifications and requests push registration.

Uw app wordt nu bijgewerkt ter ondersteuning van pushmeldingen.Your app is now updated to support push notifications.

Testpushmeldingen in uw iOS-appTest push notifications in your iOS app

  1. Met de rechtermuisknop op het iOS-project en klik op Set as StartUp Project.Right-click the iOS project, and click Set as StartUp Project.

  2. Druk op de uitvoeren knop of F5 in Visual Studio het project bouwen en de app te starten in een iOS-apparaat.Press the Run button or F5 in Visual Studio to build the project and start the app in an iOS device. Klik vervolgens op OK te accepteren van pushmeldingen.Then click OK to accept push notifications.

    Notitie

    U moet expliciet pushmeldingen te verzenden vanuit uw app accepteren.You must explicitly accept push notifications from your app. Deze aanvraag treedt alleen op de eerste keer is dat de app wordt uitgevoerd.This request only occurs the first time that the app runs.

  3. In de app, typt u een taak en klik vervolgens op het plusteken ( + ) pictogram.In the app, type a task, and then click the plus (+) icon.

  4. Controleer of een melding wordt ontvangen, en klik vervolgens op OK voor het verwijderen van de melding.Verify that a notification is received, and then click OK to dismiss the notification.

Configureren en uitvoeren van Windows-projecten (optioneel)Configure and run Windows projects (optional)

Deze sectie is voor het uitvoeren van de Xamarin.Forms-WinApp en WinPhone81-projecten voor Windows-apparaten.This section is for running the Xamarin.Forms WinApp and WinPhone81 projects for Windows devices. Deze stappen ook ondersteuning voor Universal Windows Platform (UWP)-projecten.These steps also support Universal Windows Platform (UWP) projects. Als u niet met Windows-apparaten werkt, kunt u deze sectie overslaan.You can skip this section if you are not working with Windows devices.

Uw Windows-app voor pushmeldingen registreren met Windows Notification Service (WNS)Register your Windows app for push notifications with Windows Notification Service (WNS)

  1. In Visual Studio Solution Explorer met de rechtermuisknop op de Windows Store-app-project.In Visual Studio Solution Explorer, right-click the Windows Store app project. Selecteer vervolgens Store > App aan de Store koppelen.Then select Store > Associate App with the Store.

    App koppelen met Windows Store

  2. Selecteer in de wizard volgende.In the wizard, select Next. Meld u vervolgens aan met uw Microsoft-account.Then sign in with your Microsoft account. In een nieuwe appnaam reserveren, typ een naam voor uw app en selecteer vervolgens Reserve.In Reserve a new app name, type a name for your app, and then select Reserve.

  3. Nadat de app-registratie is gemaakt, selecteert u de naam van de nieuwe app.After the app registration is successfully created, select the new app name. Selecteer volgende, en selecteer vervolgens koppelen.Select Next, and then select Associate. Dit proces worden de vereiste registratiegegevens voor Windows Store toegevoegd aan het toepassingsmanifest.This process adds the required Windows Store registration information to the application manifest.

  4. Herhaal stappen 1 en 3 voor de Windows Phone Store-app-project met behulp van de registratie van de dezelfde die u eerder hebt gemaakt voor de Windows Store-app.Repeat steps 1 and 3 for the Windows Phone Store app project by using the same registration you previously created for the Windows Store app.

  5. Ga naar de Windows Dev Center, en meld u aan met uw Microsoft-account.Go to the Windows Dev Center, and then sign in with your Microsoft account. In mijn apps, selecteert u de nieuwe app-registratie.In My apps, select the new app registration. Vouw vervolgens Services > Pushmeldingen.Then expand Services > Push notifications.

  6. Op de Pushmeldingen pagina onder Windows Push Notification Services (WNS) en Microsoft Azure Mobile Apps, selecteer Live Services site.On the Push notifications page, under Windows Push Notification Services (WNS) and Microsoft Azure Mobile Apps, select Live Services site. Noteer de waarden van de pakket-SID en de huidige waarde in de Toepassingsgeheim.Make a note of the values of the Package SID and the current value in Application Secret.

    App-instelling in het ontwikkelaarscentrum

    Belangrijk

    Het toepassingsgeheim en de pakket-SID zijn belangrijke beveiligingsreferenties.The application secret and package SID are important security credentials. Niet deel van deze waarden met niemand en distribueer ze met uw app.Don't share these values with anyone or distribute them with your app.

De notification hub configureren voor WNSConfigure the notification hub for WNS

  1. In de Azure-portal, selecteer door alles bladeren > App Services.In the Azure portal, select Browse All > App Services. Vervolgens Selecteer uw Mobile Apps-back-end.Then select your Mobile Apps back end. Onder instellingen, selecteer App Service-Push.Under Settings, select App Service Push. Selecteer vervolgens de naam van uw notification hub.Then select your notification hub name.

  2. Ga naar Windows (WNS) .Go to Windows (WNS). Voer vervolgens de beveiligingssleutel (clientgeheim) en pakket-SID die u hebt verkregen via de site van Live-Services.Then enter the Security key (client secret) and Package SID that you obtained from the Live Services site. Selecteer vervolgens opslaan.Next, select Save.

    Stel de WNS-sleutel in de portal

Uw back-end is nu geconfigureerd voor het gebruik van WNS om pushmeldingen te verzenden.Your back end is now configured to use WNS to send push notifications.

Pushmeldingen toevoegen aan uw Windows-appAdd push notifications to your Windows app

  1. Open in Visual Studio, App.xaml.cs in een Windows-project en voeg de volgende instructies toe.In Visual Studio, open App.xaml.cs in a Windows project, and add the following statements.

    using Newtonsoft.Json.Linq;
    using Microsoft.WindowsAzure.MobileServices;
    using System.Threading.Tasks;
    using Windows.Networking.PushNotifications;
    using <your_TodoItemManager_portable_class_namespace>;
    

    Vervang <your_TodoItemManager_portable_class_namespace> met de naamruimte van uw draagbare project met daarin de TodoItemManager klasse.Replace <your_TodoItemManager_portable_class_namespace> with the namespace of your portable project that contains the TodoItemManager class.

  2. Voeg in App.xaml.cs de volgende InitNotificationsAsync methode:In App.xaml.cs, add the following InitNotificationsAsync method:

    private async Task InitNotificationsAsync()
    {
        var channel = await PushNotificationChannelManager
            .CreatePushNotificationChannelForApplicationAsync();
    
        const string templateBodyWNS =
            "<toast><visual><binding template=\"ToastText01\"><text id=\"1\">$(messageParam)</text></binding></visual></toast>";
    
        JObject headers = new JObject();
        headers["X-WNS-Type"] = "wns/toast";
    
        JObject templates = new JObject();
        templates["genericMessage"] = new JObject
        {
            {"body", templateBodyWNS},
            {"headers", headers} // Needed for WNS.
        };
    
        await TodoItemManager.DefaultManager.CurrentClient.GetPush()
            .RegisterAsync(channel.Uri, templates);
    }
    

    Deze methode de push-mailmeldingskanaal opgehaald en wordt een sjabloon voor het ontvangen van Sjabloonmeldingen van de notification hub geregistreerd.This method gets the push notification channel, and registers a template to receive template notifications from your notification hub. De melding van een sjabloon die ondersteuning biedt voor messageParam voor deze client wordt geleverd.A template notification that supports messageParam will be delivered to this client.

  3. Werk in App.xaml.cs de OnLaunched gebeurtenis-handler methodedefinitie door toe te voegen de async modifier.In App.xaml.cs, update the OnLaunched event handler method definition by adding the async modifier. Voeg vervolgens de volgende coderegel toe aan het einde van de methode:Then add the following line of code at the end of the method:

    await InitNotificationsAsync();
    

    Dit zorgt ervoor dat de registratie voor pushberichten wordt gemaakt of vernieuwd zodra de app wordt gestart.This ensures that the push notification registration is created or refreshed every time the app is launched. Het is belangrijk dat u doet dit om ervoor te zorgen dat de WNS-kanaal is push altijd actief is.It's important to do this to guarantee that the WNS push channel is always active.

  4. Open in Solution Explorer voor Visual Studio, de Package.appxmanifest bestand toe en stel Toast geschikt naar Ja onder meldingen.In Solution Explorer for Visual Studio, open the Package.appxmanifest file, and set Toast Capable to Yes under Notifications.

  5. De app bouwen en controleer of er geen fouten.Build the app and verify you have no errors. Uw client-app moet nu registreren voor de voor Sjabloonmeldingen van de back-end voor mobiele Apps.Your client app should now register for the template notifications from the Mobile Apps back end. Deze sectie te herhalen voor elke Windows-project in uw oplossing.Repeat this section for every Windows project in your solution.

Testpushmeldingen in uw Windows-appTest push notifications in your Windows app

  1. Met de rechtermuisknop op een Windows-project in Visual Studio, en klikt u op instellen als opstartproject.In Visual Studio, right-click a Windows project, and click Set as startup project.
  2. Druk op de knop Uitvoeren om het project te bouwen en de app te starten.Press the Run button to build the project and start the app.
  3. Typ een naam voor een nieuwe taken in de app, en klik vervolgens op het plusteken ( + ) pictogram toe te voegen.In the app, type a name for a new todoitem, and then click the plus (+) icon to add it.
  4. Controleer of dat er een melding wordt ontvangen wanneer het item wordt toegevoegd.Verify that a notification is received when the item is added.

Volgende stappenNext steps

U kunt meer informatie over pushmeldingen te verzenden:You can learn more about push notifications:

Ook kunt u doorgaan naar een van de volgende zelfstudies:You can also continue on to one of the following tutorials:

  • Verificatie toevoegen aan uw appAdd authentication to your app
    Ontdek hoe u gebruikers van uw app verifieert met een id-provider.Learn how to authenticate users of your app with an identity provider.
  • Offlinesynchronisatie voor uw app inschakelenEnable offline sync for your app
    Ontdek hoe u offlineondersteuning voor uw app toevoegt met behulp van een back-end voor Mobile Apps.Learn how to add offline support for your app by using a Mobile Apps back end. Offline synchroniseren zorgt gebruikers met een mobiele app kunnen werken—weergeven, toevoegen of wijzigen van gegevens—, zelfs wanneer er geen netwerkverbinding.With offline sync, users can interact with a mobile app—viewing, adding, or modifying data—even when there is no network connection.