Esercitazione: Inviare notifiche push alle app Xamarin.iOS con Hub di notifica di AzureTutorial: Send push notifications to Xamarin.iOS apps using Azure Notification Hubs

PanoramicaOverview

Questa esercitazione illustra come usare Hub di notifica di Azure per inviare notifiche push a un'applicazione per iOS.This tutorial shows you how to use Azure Notification Hubs to send push notifications to an iOS application. Creare un'app Xamarin.iOS vuota che riceve notifiche push mediante Apple Push Notification Service (APNS).You create a blank Xamarin.iOS app that receives push notifications by using the Apple Push Notification service (APNs).

Al termine è possibile usare l'hub di notifica per trasmettere le notifiche push a tutti i dispositivi che eseguono l'app.When you're finished, you are able to use your notification hub to broadcast push notifications to all the devices running your app. Il codice compilato è disponibile nell'esempio di app NotificationHubs.The finished code is available in the NotificationHubs app sample.

In questa esercitazione si crea/aggiorna il codice per eseguire le attività seguenti:In this tutorial, you create/update code to do the following tasks:

  • Generare il file della richiesta di firma del certificatoGenerate the certificate signing request file
  • Registrare l'app per le notifiche pushRegister your app for push notifications
  • Creare un profilo di provisioning per l'appCreate a provisioning profile for the app
  • Configurare l'hub di notifica per l'invio di notifiche push di iOSConfigure your notification hub for iOS push notifications
  • Inviare notifiche push di provaSend test push notifications

PrerequisitiPrerequisites

  • Sottoscrizione di Azure.Azure subscription. Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.If you don't have an Azure subscription, create a free Azure account before you begin.

  • Ultima versione di XcodeLatest version of Xcode

  • Dispositivo compatibile con iOS 10 o versione successivaAn iOS 10 (or later version) compatible device

  • Apple Developer Program .Apple Developer Program membership.

  • Visual Studio per MacVisual Studio for Mac

    Nota

    Considerati i requisiti di configurazione delle notifiche push di iOS, è necessario distribuire e testare l'applicazione di esempio in un dispositivo iOS, iPhone o iPad, anziché in un simulatore.Because of configuration requirements for iOS push notifications, you must deploy and test the sample application on a physical iOS device (iPhone or iPad) instead of in the simulator.

Il completamento di questa esercitazione costituisce un prerequisito per tutte le altre esercitazioni di Hub di notifica relative ad app Xamarin.iOS.Completing this tutorial is a prerequisite for all other Notification Hubs tutorials for Xamarin.iOS apps.

Generare il file della richiesta di firma del certificatoGenerate the certificate-signing request file

Apple Push Notification Service (servizio APN) usa i certificati per autenticare le notifiche push.The Apple Push Notification Service (APNs) uses certificates to authenticate your push notifications. Seguire queste istruzioni per creare il certificato push necessario per inviare e ricevere notifiche.Follow these instructions to create the necessary push certificate to send and receive notifications. Per altre informazioni su questi concetti, vedere la documentazione ufficiale Apple Push Notification Service.For more information on these concepts, see the official Apple Push Notification Service documentation.

Generare il file della richiesta di firma del certificato usato da Apple per la generazione di un certificato push firmato.Generate the Certificate Signing Request (CSR) file, which Apple uses to generate a signed push certificate.

  1. Sul Mac eseguire lo strumento Accesso Portachiavi.On your Mac, run the Keychain Access tool. Può essere aperto dalla cartella Utilities (Utility) o Other (Altro) nella finestra di avvio.It can be opened from the Utilities folder or the Other folder on the Launchpad.

  2. Selezionare Accesso Portachiavi, espandere Certificate Assistant (Assistente certificati) e quindi selezionare Request a Certificate from a Certificate Authority (Richiedi certificato da Autorità di certificazione).Select Keychain Access, expand Certificate Assistant, and then select Request a Certificate from a Certificate Authority.

    Usare lo strumento Accesso Portachiavi per richiedere un nuovo certificato

  3. Selezionare User Email Address (Indirizzo di posta elettronica utente), immettere il valore Common Name (Nome comune), assicurarsi di specificare Saved to disk (Salvata su disco) e quindi selezionare Continue (Continua).Select your User Email Address, enter your Common Name value, make sure that you specify Saved to disk, and then select Continue. Lasciare vuoto il campo CA Email Address (Indirizzo di posta elettronica CA), in quanto non è obbligatorio.Leave CA Email Address blank as it isn't required.

    Informazioni sul certificato necessarie

  4. Immettere un nome per il file CSR in Save As (Salva con nome), selezionare il percorso in Where (Percorso) e quindi selezionare Save (Salva).Enter a name for the CSR file in Save As, select the location in Where, and then select Save.

    Scegliere un nome file del certificato

    Questa azione consente di salvare il file CSR nel percorso selezionato.This action saves the CSR file in the selected location. Il percorso predefinito è Desktop.The default location is Desktop. Tenere a mente il percorso scelto per il file.Remember the location chosen for the file.

A questo punto registrare l'app con Apple, abilitare le notifiche push e caricare il file CSR esportato per creare un certificato push.Next, register your app with Apple, enable push notifications, and upload the exported CSR to create a push certificate.

Registrare l'app per le notifiche pushRegister your app for push notifications

Per inviare notifiche push a un'app per iOS, registrare l'applicazione con Apple ed eseguire un'altra registrazione per abilitare le notifiche push.To send push notifications to an iOS app, register your application with Apple, and also register for push notifications.

  1. Se l'app non è stata ancora registrata, passare al portale di provisioning iOS in Apple Developer Center.If you haven't already registered your app, browse to the iOS Provisioning Portal at the Apple Developer Center. Accedere al portale con l'ID Apple e selezionare Identifiers (Identificatori).Sign in to the portal with your Apple ID, and select Identifiers. Selezionare quindi + per registrare una nuova app.Then select + to register a new app.

    Pagina ID app del portale di provisioning di iOS

  2. Nella schermata Register a New Identifier (Registra un nuovo identificatore) selezionare il pulsante di opzione App IDs (ID app).On the Register a New Identifier screen, select the App IDs radio button. Selezionare quindi Continua.Then select Continue.

    Pagina di registrazione di un nuovo ID nel portale di provisioning di iOS

  3. Aggiornare i tre valori seguenti per la nuova app e quindi selezionare Continue (Continua).Update the following three values for your new app, and then select Continue:

    • Descrizione: digitare un nome descrittivo per l'app.Description: Type a descriptive name for your app.

    • Bundle ID: immettere un valore di ID bundle nel formato Organization Identifier.Product Name come indicato nella guida alla distribuzione di app.Bundle ID: Enter a Bundle ID of the form Organization Identifier.Product Name as mentioned in the App Distribution Guide. I valori Organization Identifier (Identificatore organizzazione) e Product Name (Nome prodotto) devono corrispondere all'identificatore dell'organizzazione e al nome del prodotto usati nella creazione del progetto Xcode.The Organization Identifier and Product Name values must match the organization identifier and product name you use when you create your Xcode project. Nello screenshot seguente il valore NotificationHubs viene usato come identificatore dell'organizzazione e il valore GetStarted viene usato come nome del prodotto.In the following screenshot, the NotificationHubs value is used as an organization identifier and the GetStarted value is used as the product name. Assicurarsi che il valore Bundle Identifier (Identificatore bundle) corrisponda al valore nel progetto Xcode, affinché Xcode usi il profilo di pubblicazione corretto.Make sure the Bundle Identifier value matches the value in your Xcode project, so that Xcode uses the correct publishing profile.

      Pagina di registrazione dell'ID app nel portale di provisioning di iOS

    • Push Notifications (Notifiche Push): selezionare l'opzione Push Notifications (Notifiche push) nella sezione Capabilities (Funzionalità).Push Notifications: Check the Push Notifications option in the Capabilities section.

      Modulo per registrare un nuovo ID app

      Questa azione consente di generare l'ID app e richiede all'utente di confermare le informazioni.This action generates your App ID and requests that you confirm the information. Fare clic su Continue (Continua) e quindi selezionare Register per confermare il nuovo ID app.Select Continue, then select Register to confirm the new App ID.

      Conferma nuovo ID app

      Dopo aver selezionato Register (Registra), il nuovo ID app viene visualizzato come una voce nella pagina Certificates, Identifiers & Profiles (Certificati, identificatori e profili).After you select Register, you see the new App ID as a line item in the Certificates, Identifiers & Profiles page.

  4. Nella pagina Certificates, Identifiers & Profiles (Certificati, identificatori e profili), in Identifiers (Identificatori) individuare la voce relativa all'ID app appena creata e selezionare la riga corrispondente per visualizzare la schermata Edit your App ID Configuration (Modificare la configurazione dell'ID app).In the Certificates, Identifiers & Profiles page, under Identifiers, locate the App ID line item that you just created, and select its row to display the Edit your App ID Configuration screen.

  5. Scorrere verso il basso fino all'opzione Push Notifications (Notifiche push) selezionata, quindi selezionare Configure (Configura) per creare il certificato.Scroll down to the checked Push Notifications option, and then select Configure to create the certificate.

    Pagina Modifica ID app

  6. Verrà visualizzata la finestra Apple Push Notification service SSL Certificates (Certificati SSL di Apple Push Notification Service).The Apple Push Notification service SSL Certificates window appears. Fare clic sul pulsante Create Certificate (Crea certificato) nella sezione Development SSL Certificate (Certificato SSL per lo sviluppo).Select the Create Certificate button under the Development SSL Certificate section.

    Pulsante Crea certificato per l'ID app

    Verrà visualizzata la schermata Create a new Certificate (Crea un nuovo certificato).The Create a new Certificate screen is displayed.

    Nota

    Questa esercitazione usa un certificato di sviluppo.This tutorial uses a development certificate. La stessa procedura viene usata per registrare un certificato di produzione.The same process is used when registering a production certificate. Per l'invio delle notifiche, assicurarsi di usare lo stesso tipo di certificato.Just make sure that you use the same certificate type when sending notifications.

  7. Selezionare Choose File (Scegli file), passare al percorso in cui è stato salvato il file CSR creato durante la prima attività e quindi fare doppio clic sul nome del certificato per caricarlo.Select Choose File, browse to the location where you saved the CSR file from the first task, and then double-click the certificate name to load it. Selezionare quindi Continua.Then select Continue.

  8. Dopo che il portale avrà creato il certificato, fare clic sul pulsante Download (Scarica).After the portal creates the certificate, select the Download button. Salvare il certificato e prendere nota del percorso di salvataggio.Save the certificate, and remember the location to which it's saved.

    Pagina di download per il certificato generato

    Il certificato viene scaricato e salvato nel computer nella cartella Download.The certificate is downloaded and saved to your computer in your Downloads folder.

    Trovare il file del certificato nella cartella Download

    Nota

    Per impostazione predefinita, il certificato di sviluppo scaricato viene denominato aps_development.cer.By default, the downloaded development certificate is named aps_development.cer.

  9. Fare doppio clic sul certificato push scaricato aps_development.cer.Double-click the downloaded push certificate aps_development.cer. Questa azione consente di installare il nuovo certificato in Keychain, come illustrato nell'immagine seguente:This action installs the new certificate in the Keychain, as shown in the following image:

    Elenco di certificati di Accesso Portachiavi con il nuovo certificato

    Nota

    Anche se il nome del certificato potrebbe essere diverso, verrà preceduto da Apple Development iOS Push Services (Servizi push iOS per lo sviluppo Apple).Although the name in your certificate might be different, the name will be prefixed with Apple Development iOS Push Services.

  10. In Accesso portachiavi fare clic con il pulsante destro del mouse sul nuovo certificato push creato nella categoria Certificati .In Keychain Access, right-click the new push certificate that you created in the Certificates category. Selezionare Export (Esporta), assegnare un nome al file, selezionare il formato .p12 e quindi selezionare Save (Salva).Select Export, name the file, select the .p12 format, and then select Save.

    Esportare il certificato come formato p12

    È facoltativamente possibile scegliere di proteggere il certificato tramite una password.You can choose to protect the certificate with a password, but this is optional. Fare clic su OK se si desidera ignorare la creazione della password.Click OK if you want to bypass password creation. Prendere nota del nome del file e del percorso del certificato con estensione p12 esportato.Make a note of the file name and location of the exported .p12 certificate. Verranno usati per abilitare l'autenticazione con il servizio APN.They are used to enable authentication with APNs.

    Nota

    Il nome e il percorso del file. P12 potrebbero essere diversi rispetto a quelli illustrati in questa esercitazione.Your .p12 file name and location might be different than what is pictured in this tutorial.

Creare un profilo di provisioning per l'appCreate a provisioning profile for the app

  1. Tornare a iOS Provisioning Portal (Portale di provisioning di iOS), selezionare Certificates, Identifiers & Profiles (Certificati, identificatori e profili), quindi Profiles (Profili) dal menu a sinistra e infine selezionare + per creare un nuovo profilo.Return to the iOS Provisioning Portal, select Certificates, Identifiers & Profiles, select Profiles from the left menu, and then select + to create a new profile. Verrà visualizzata la schermata Register a New Provisioning Profile (Registra un nuovo profilo di provisioning).The Register a New Provisioning Profile screen appears.

  2. In Development (Sviluppo) selezionare iOS App Development (Sviluppo app iOS) come tipo di profilo di provisioning e quindi Continue (Continua).Select iOS App Development under Development as the provisioning profile type, and then select Continue.

    Elenco profili di provisioning

  3. Selezionare quindi l'ID app creata nell'elenco a discesa App ID (ID app) e selezionare Continue (Continua).Next, select the app ID you created from the App ID drop-down list, and select Continue.

    Selezionare l'ID app

  4. Nella finestra Select certificates (Seleziona certificati) selezionare il certificato di sviluppo usato per la firma del codice e quindi fare clic su Continue (Continua).In the Select certificates window, select the development certificate that you use for code signing, and select Continue. Questo non è il certificato push creato.This certificate isn't the push certificate you created. Se non ne esiste uno, è necessario crearlo.If one does not exist, you must create it. Se esiste un certificato, andare al passaggio successivo.If a certificate does exist, skip to the next step. Per creare un certificato di sviluppo, se non ne esiste uno:To create a development certificate if one does not exist:

    1. Se viene visualizzato il messaggio No Certificates are available (Nessun certificato disponibile), selezionare Create Certificate (Crea certificato).If you see No Certificates are available, select Create Certificate.
    2. Nella sezione Software selezionare Apple Development (Sviluppo Apple).In the Software section, select Apple Development. Selezionare quindi Continua.Then select Continue.
    3. Nella schermata Create a New Certificate (Crea un nuovo certificato) selezionare Choose File (Scegli file).In the Create a New Certificate screen, select Choose File.
    4. Passare al certificato Certificate Signing Request (Richiesta di firma del certificato) creato in precedenza, selezionarlo e quindi scegliere Open (Apri).Browse to the Certificate Signing Request certificate you created earlier, select it, and then select Open.
    5. Selezionare Continua.Select Continue.
    6. Scaricare il certificato di sviluppo e prendere nota del percorso di salvataggio.Download the development certificate, and remember the location to which it's saved.
  5. Tornare alla pagina Certificates, Identifiers & Profiles (Certificati, identificatori e profili), selezionare Profiles (Profili) dal menu a sinistra e infine selezionare + per creare un nuovo profilo.Return to the Certificates, Identifiers & Profiles page, select Profiles from the left menu, and then select + to create a new profile. Verrà visualizzata la schermata Register a New Provisioning Profile (Registra un nuovo profilo di provisioning).The Register a New Provisioning Profile screen appears.

  6. Nella finestra Select certificates (Seleziona certificati) selezionare il certificato di sviluppo appena creato.In the Select certificates window, select the development certificate that you just created. Selezionare quindi Continua.Then select Continue.

  7. Selezionare quindi i dispositivi da usare per il test e selezionare Continue (Continua).Next, select the devices to use for testing, and select Continue.

  8. Scegliere infine un nome per il profilo in Provisioning Profile Name (Nome profilo di provisioning) e selezionare Generate (Genera).Finally, choose a name for the profile in Provisioning Profile Name, and select Generate.

    Scegliere un nome del profilo di provisioning

  9. Quando viene creato il nuovo profilo di provisioning, selezionare Download.When the new provisioning profile is created, select Download. Prendere nota del percorso di salvataggio.Remember the location to which it's saved.

  10. Passare al percorso del profilo di provisioning e quindi fare doppio clic su di esso per installarlo nel computer di sviluppo Xcode.Browse to the location of the provisioning profile, and then double-click it to install it on your Xcode development machine.

Creare un hub di notificaCreate a notification hub

In questa sezione viene creato un hub di notifica e viene configurata l'autenticazione con il servizio APN usando il certificato push con estensione p12 creato in precedenza.In this section, you create a notification hub and configure authentication with APNs by using the .p12 push certificate that you previously created. Se si vuole usare un hub di notifica che è già stato creato, è possibile ignorare il passaggio 5.If you want to use a notification hub that you've already created, you can skip to step 5.

  1. Accedere al portale di Azure.Sign in to the Azure portal.

  2. Scegliere Tutti i servizi dal menu a sinistra e quindi selezionare Hub di notifica nella sezione Dispositivi mobili.Select All services on the left menu, and then select Notification Hubs in the Mobile section. Selezionare l'icona a forma di stella accanto al nome del servizio per aggiungere il servizio alla sezione PREFERITI nel menu a sinistra.Select the star icon next to the service name to add the service to the FAVORITES section on the left menu. Dopo aver aggiunto Hub di notifica a PREFERITI, selezionarlo nel menu a sinistra.After you add Notification Hubs to FAVORITES, select it on the left menu.

    Portale di Azure - Selezionare Hub di notifica

  3. Nella pagina Hub di notifica selezionare Aggiungi sulla barra degli strumenti.On the Notification Hubs page, select Add on the toolbar.

    Hub di notifica - Pulsante Aggiungi della barra degli strumenti

  4. Nella pagina Hub di notifica procedere come segue:On the Notification Hub page, do the following steps:

    1. Immettere un nome in Hub di notifica.Enter a name in Notification Hub.

    2. Immettere un nome in Crea un nuovo spazio dei nomi.Enter a name in Create a new namespace. Uno spazio dei nomi contiene uno o più hub.A namespace contains one or more hubs.

    3. Selezionare un valore nell'elenco a discesa Posizione.Select a value from the Location drop-down list box. Questo valore specifica la posizione in cui creare l'hub.This value specifies the location in which you want to create the hub.

    4. Selezionare un gruppo di risorse esistente in Gruppo di risorse o creare un nome per un nuovo gruppo di risorse.Select an existing resource group in Resource Group, or create a name for a new resource group.

    5. Selezionare Create (Crea).Select Create.

      Portale di Azure: impostare le proprietà dell'hub di notifica

  5. Selezionare Notifiche (icona a forma di campanello) e quindi selezionare Vai alla risorsa.Select Notifications (the bell icon), and then select Go to resource. È anche possibile aggiornare l'elenco nella pagina Hub di notifica e selezionare l'hub.You can also refresh the list on the Notification Hubs page and select your hub.

    Portale di Azure - Notifiche -> Vai alla risorsa

  6. Selezionare Criteri di accesso dall'elenco.Select Access Policies from the list. Prendere nota delle due stringhe di connessione disponibili.Note that the two connection strings are available to you. Sono necessarie in un secondo momento per gestire le notifiche push.You'll need them later to handle push notifications.

    Importante

    Non usare il criterio DefaultFullSharedAccessSignature nell'applicazione.Do not use the DefaultFullSharedAccessSignature policy in your application. Deve essere usato solo nel back-end.This is meant to be used in your back end only.

    Portale di Azure: stringhe di connessione dell'hub di notifica

Configurare l'hub di notifica con le informazioni del servizio APNConfigure your notification hub with APNs information

  1. In Servizi di notifica selezionare Apple (APNS) .Under Notification Services, select Apple (APNS).

  2. Selezionare Certificate.Select Certificate.

  3. Selezionare l'icona del file.Select the file icon.

  4. Selezionare il file con estensione p12 esportato in precedenza e quindi selezionare Open (Apri).Select the .p12 file that you exported earlier, and then select Open.

  5. Se necessario, specificare la password corretta.If required, specify the correct password.

  6. Selezionare la modalità Sandbox.Select Sandbox mode. Usare la modalità Production (Produzione) solo se si vuole inviare notifiche push agli utenti che hanno acquistato l'app dallo Store.Use the Production mode only if you want to send push notifications to users who purchased your app from the store.

    Configurare il certificato APN nel portale di Azure

  7. Selezionare Salva.Select Save.

L'hub di notifica è ora configurato con le informazioni del servizio APN.You've now configured your notification hub with APNs. Sono presenti anche le stringhe di connessione per registrare l'app e inviare notifiche push.You also have the connection strings to register your app and send push notifications.

Connettere l'app all'hub di notificaConnect your app to the notification hub

Creare un nuovo progettoCreate a new project

  1. In Visual Studio creare un nuovo progetto iOS e selezionare il modello App visualizzazione singola, quindi fare clic su AvantiIn Visual Studio, create a new iOS project and select the Single View App template, and click Next

    Visual Studio - Selezionare il tipo di applicazione

  2. Immettere il nome dell'app e l'identificatore dell'organizzazione, quindi fare clic su Avanti e su CreaEnter your App Name and Organization identifier, then click Next, then Create

  3. Nella visualizzazione della soluzione fare doppio clic su Info.plist e in Identità assicurarsi che l'identificatore del bundle corrisponda a quello usato per la creazione del profilo di provisioning.From the Solution view, double-click Info.plist and under Identity make sure your Bundle Identifier matches the one used when creating your provisioning profile. In Firma accertarsi che sotto Team sia selezionato il proprio account per sviluppatore, che sia selezionato "Automatically manage signing" (Gestisci firma automaticamente) e che vengano automaticamente selezionati il certificato di firma e il profilo di provisioning.Under Signing ensure that your Developer account is selected under Team, "Automatically manage signing" is selected and your Signing Certificate and Provisioning Profile are automatically selected.

    Visual Studio - Configurazione di un'app iOS

  4. Nella visualizzazione della soluzione fare doppio clic su Entitlements.plist e verificare che l'opzione Abilita notifiche push sia selezionata.From the Solution view, double-click the Entitlements.plist and ensure that Enable Push Notifications is checked.

    Visual Studio - Configurazione di entitlement iOS

  5. Aggiungere il pacchetto di messaggistica di Azure.Add the Azure Messaging package. Nella visualizzazione della soluzione fare clic con il pulsante destro del mouse sul progetto e scegliere Aggiungi > Aggiungi pacchetti NuGet.In the Solution view, right-click the project and select Add > Add NuGet Packages. Cercare Xamarin.Azure.NotificationHubs.iOS e aggiungere il pacchetto al progetto.Search for Xamarin.Azure.NotificationHubs.iOS and add the package to your project.

  6. Aggiungere un nuovo file alla classe, assegnargli il nome Constants.cs, aggiungere le variabili seguenti e sostituire i segnaposto dei valori letterali stringa con i valori hubname e DefaultListenSharedAccessSignature annotati in precedenza.Add a new file to your class, name it Constants.cs and add the following variables and replace the string literal placeholders with the hubname and the DefaultListenSharedAccessSignature noted earlier.

    // Azure app-specific connection string and hub path
    public const string ListenConnectionString = "<Azure DefaultListenSharedAccess Connection String>";
    public const string NotificationHubName = "<Azure Notification Hub Name>";
    
  7. In AppDelegate.cs aggiungere l'istruzione using seguente:In AppDelegate.cs, add the following using statement:

    using WindowsAzure.Messaging;
    using UserNotifications
    
  8. Dichiarare un'istanza di SBNotificationHub:Declare an instance of SBNotificationHub:

    private SBNotificationHub Hub { get; set; }
    
  9. In AppDelegate.cs aggiornare FinishedLaunching() in base al codice seguente:In AppDelegate.cs, update FinishedLaunching() to match the following code:

    public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
    {
        if (UIDevice.CurrentDevice.CheckSystemVersion(10, 0))
        {
            UNUserNotificationCenter.Current.RequestAuthorization(UNAuthorizationOptions.Alert | UNAuthorizationOptions.Badge | UNAuthorizationOptions.Sound,
                                                                    (granted, error) =>
            {
                if (granted)
                    InvokeOnMainThread(UIApplication.SharedApplication.RegisterForRemoteNotifications);
            });
        } else if (UIDevice.CurrentDevice.CheckSystemVersion (8, 0)) {
            var pushSettings = UIUserNotificationSettings.GetSettingsForTypes (
                    UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound,
                    new NSSet ());
    
            UIApplication.SharedApplication.RegisterUserNotificationSettings (pushSettings);
            UIApplication.SharedApplication.RegisterForRemoteNotifications ();
        } else {
            UIRemoteNotificationType notificationTypes = UIRemoteNotificationType.Alert | UIRemoteNotificationType.Badge | UIRemoteNotificationType.Sound;
            UIApplication.SharedApplication.RegisterForRemoteNotificationTypes (notificationTypes);
        }
    
        return true;
    }
    
  10. In AppDelegate.cs eseguire l'override del metodo RegisteredForRemoteNotifications():In AppDelegate.cs, override the RegisteredForRemoteNotifications() method:

    public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken)
    {
        Hub = new SBNotificationHub(Constants.ListenConnectionString, Constants.NotificationHubName);
    
        Hub.UnregisterAllAsync (deviceToken, (error) => {
            if (error != null)
            {
                System.Diagnostics.Debug.WriteLine("Error calling Unregister: {0}", error.ToString());
                return;
            }
    
            NSSet tags = null; // create tags if you want
            Hub.RegisterNativeAsync(deviceToken, tags, (errorCallback) => {
                if (errorCallback != null)
                    System.Diagnostics.Debug.WriteLine("RegisterNativeAsync error: " + errorCallback.ToString());
            });
        });
    }
    
  11. In AppDelegate.cs eseguire l'override del metodo ReceivedRemoteNotification():In AppDelegate.cs, override the ReceivedRemoteNotification() method:

    public override void ReceivedRemoteNotification(UIApplication application, NSDictionary userInfo)
    {
        ProcessNotification(userInfo, false);
    }
    
  12. In AppDelegate.cs creare il metodo ProcessNotification():In AppDelegate.cs, create the ProcessNotification() method:

    void ProcessNotification(NSDictionary options, bool fromFinishedLaunching)
    {
        // Check to see if the dictionary has the aps key.  This is the notification payload you would have sent
        if (null != options && options.ContainsKey(new NSString("aps")))
        {
            //Get the aps dictionary
            NSDictionary aps = options.ObjectForKey(new NSString("aps")) as NSDictionary;
    
            string alert = string.Empty;
    
            //Extract the alert text
            // NOTE: If you're using the simple alert by just specifying
            // "  aps:{alert:"alert msg here"}  ", this will work fine.
            // But if you're using a complex alert with Localization keys, etc.,
            // your "alert" object from the aps dictionary will be another NSDictionary.
            // Basically the JSON gets dumped right into a NSDictionary,
            // so keep that in mind.
            if (aps.ContainsKey(new NSString("alert")))
                alert = (aps [new NSString("alert")] as NSString).ToString();
    
            //If this came from the ReceivedRemoteNotification while the app was running,
            // we of course need to manually process things like the sound, badge, and alert.
            if (!fromFinishedLaunching)
            {
                //Manually show an alert
                if (!string.IsNullOrEmpty(alert))
                {
                    UIAlertView avAlert = new UIAlertView("Notification", alert, null, "OK", null);
                    avAlert.Show();
                }
            }
        }
    }
    

    Nota

    È possibile scegliere di eseguire l'override di FailedToRegisterForRemoteNotifications() per gestire situazioni come l'assenza di una connessione di rete.You can choose to override FailedToRegisterForRemoteNotifications() to handle situations such as no network connection. Questo risulta particolarmente importante nei casi in cui l'utente può avviare l'applicazione in modalità offline, ad esempio in aereo, e si vogliono gestire scenari di messaggistica push specifici per l'applicazione.This is especially important where the user might start your application in offline mode (for example, Airplane) and you want to handle push messaging scenarios specific to your app.

  13. Eseguire l'app sul dispositivo.Run the app on your device.

Inviare notifiche push di provaSend test push notifications

È possibile testare rapidamente la ricezione di notifiche nell'app con l'opzione Invio di prova nel portale di Azure.You can test receiving notifications in your app with the Test Send option in the Azure portal. Verrà inviata una notifica push di prova al dispositivo.It sends a test push notification to your device.

Portale di Azure - Invio di prova

Le notifiche push vengono in genere inviate in un servizio back-end come App per dispositivi mobili o ASP.NET usando una libreria compatibile.Push notifications are normally sent in a back-end service like Mobile Apps or ASP.NET using a compatible library. Se non è disponibile una libreria per il back-end è anche possibile usare direttamente l'API REST per inviare messaggi di notifica.If a library is not available for your back-end, you can also use the REST API directly to send notification messages.

Passaggi successiviNext steps

In questa esercitazione le notifiche sono state trasmesse a tutti i dispositivi iOS registrati con il back-end.In this tutorial, you sent broadcast notifications to all your iOS devices registered with the backend. Per informazioni sulle procedure per eseguire il push di notifiche a dispositivi iOS specifici, passare all'esercitazione seguente:To learn how to push notifications to specific iOS devices, advance to the following tutorial: