Notifiche push di iOS con Hub di notifica per app XamariniOS Push Notifications with Notification Hubs for Xamarin apps

PanoramicaOverview

Importante

Per completare l'esercitazione, è necessario disporre di un account Azure attivo.To complete this tutorial, you must have an active Azure account. Se non si dispone di un account, è possibile creare un account di valutazione gratuita in pochi minuti.If you don't have an account, you can create a free trial account in just a couple of minutes. Per informazioni dettagliate, vedere la pagina relativa alla versione di valutazione gratuita di Azure.For details, see Azure Free Trial.

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. Si creerà un'app Xamarin.iOS vuota che riceve notifiche push attraverso Apple Push Notification Service (APNS).You'll create a blank Xamarin.iOS app that receives push notifications by using the Apple Push Notification Service (APNs). Al termine, sarà possibile usare l’hub di notifica per trasmettere le notifiche push a tutti i dispositivi che eseguono l'app.When you're finished, you'll be 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.

Questa esercitazione illustra un semplice scenario di trasmissione di un messaggio push con Hub di notifica.This tutorial demonstrates the simple push message broadcast scenario with Notification Hubs.

PrerequisitiPrerequisites

Per completare questa esercitazione, è necessario disporre di:This tutorial requires the following:

  • Xcode 6.0Xcode 6.0
  • Dispositivo compatibile con iOS 7.0 o versione successivaAn iOS 7.0 (or later version) compatible device
  • Iscrizione a iOS Developer ProgramiOS Developer Program membership
  • Xamarin StudioXamarin Studio

    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 per Xamarin.iOS.Completing this tutorial is a prerequisite for all other Notification Hubs tutorials for Xamarin iOS apps.

Generare il file di richiesta di firma del certificatoGenerate the Certificate Signing Request file

Il servizio Apple Push Notification Service (APNS) 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 relativa al servizio 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 is used by Apple 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 launch pad.
  2. Fare clic su Keychain Access (Accesso Portachiavi), espandere Certificate Assistant (Assistente Certificato), quindi fare clic su Request a Certificate from a Certificate Authority... (Richiedi un certificato da una Autorità di Certificazione...).Click Keychain Access, expand Certificate Assistant, then click Request a Certificate from a Certificate Authority....

  3. Selezionare User Email Address (Indirizzo e-mail utente) e Common Name (Nome comune), assicurarsi che l'opzione Saved to disk (Salvata sul disco) sia selezionata, quindi fare clic su Continue (Continua).Select your User Email Address and Common Name , make sure that Saved to disk is selected, and then click Continue. Lasciare vuoto il campo Indirizzo e-mail CA , in quanto non è obbligatorio.Leave the CA Email Address field blank as it is not required.

  4. Digitare un nome per il file della richiesta di firma del certificato (CSR) in Save As, (Salva col nome), selezionare il percorso in Where (Posizione), quindi fare clic su Save (Salva).Type a name for the Certificate Signing Request (CSR) file in Save As, select the location in Where, then click Save.

    Il file CSR viene salvato nel percorso selezionato. Il percorso predefinito è Scrivania.This saves the CSR file in the selected location; the default location is in the Desktop. Tenere a mente il percorso scelto per il file.Remember the location chosen for this 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, you will register your app with Apple, enable push notifications, and upload this exported CSR to create a push certificate.

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

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

  1. Se l'app non è ancora stata registrata, accedere al portale di provisioning iOS su Apple Developer Center, eseguire l'accesso con il proprio ID Apple, fare clic su Identifiers, quindi su App IDs e infine fare clic sul segno + per registrare una nuova app.If you have not already registered your app, navigate to the iOS Provisioning Portal at the Apple Developer Center, log on with your Apple ID, click Identifiers, then click App IDs, and finally click on the + sign to register a new app.

  2. Aggiornare i tre campi seguenti per la nuova app e quindi fare clic su Continue:Update the following three fields for your new app and then click Continue:

    • Name: digitare un nome descrittivo per l'app nel campo Name della sezione App ID Description.Name: Type a descriptive name for your app in the Name field in the App ID Description section.
    • Bundle Identifier: nella sezione Explicit App ID immettere un valore in Bundle Identifier nel formato <Organization Identifier>.<Product Name>, come indicato nel documento App Distribution Guide.Bundle Identifier: Under the Explicit App ID section, enter a Bundle Identifier in the form <Organization Identifier>.<Product Name> as mentioned in the App Distribution Guide. Organization Identifier e Product Name devono corrispondere all'identificatore dell'organizzazione e al nome del prodotto che verranno usati quando si crea il progetto XCode.The Organization Identifier and Product Name you use must match the organization identifier and product name you will use when you create your XCode project. Nella schermata seguente NotificationHubs viene usato come identificatore di organizzazione e GetStarted viene usato come nome del prodotto.In the screeshot below NotificationHubs is used as a organization idenitifier and GetStarted is used as the product name. Verificare che corrispondano ai valori che si useranno nel progetto XCode, in modo da usare il profilo di pubblicazione corretto con XCode.Making sure this matches the values you will use in your XCode project will allow you to use the correct publishing profile with XCode.
    • Notifiche Push: selezionare l'opzione Notifiche Push nella sezione Servizi app.Push Notifications: Check the Push Notifications option in the App Services section, .

      Verrà generato l'ID app e all'utente verrà chiesto di confermare le informazioni.This generates your App ID and requests you to confirm the information. Fare clic su Registra per confermare il nuovo ID app.Click Register to confirm the new App ID.

      Dopo aver fatto clic su Register (Registrazione) verrà visualizzata la schermata Registrazione completa, come illustrato di seguito.Once you click Register, you will see the Registration complete screen, as shown below. Fare clic su Done.Click Done.

  3. In Developer Center, sotto App IDs trovare l'ID app appena creato e fare clic sulla relativa riga.In the Developer Center, under App IDs, locate the app ID that you just created, and click on its row.

    Facendo clic sull'ID app verranno visualizzati i dettagli relativi all'app.Clicking on the app ID will display the app details. Fare clic sul pulsante Edit nella parte inferiore della schermata.Click the Edit button at the bottom.

  4. Scorrere fino alla fine della schermata e fare clic su Crea Certificato... nella sezione Development Push SSL Certificate.Scroll to the bottom of the screen, and click the Create Certificate... button under the section Development Push SSL Certificate.

    Verrà visualizzato l'assistente "Add iOS Certificate".This displays the "Add iOS Certificate" assistant.

    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.

  5. Fare clic su Choose File, passare al percorso in cui è stato salvato il file CSR creato durante la prima attività, quindi fare clic su Generate.Click Choose File, browse to the location where you saved the CSR file that you created in the first task, then click Generate.

  6. Al termine della creazione del certificato nel portale, fare clic su Download e quindi su Done.After the certificate is created by the portal, click the Download button, and click Done.

    Il certificato di firma verrà scaricato e salvato nel computer nella cartella Download.This downloads the certificate and saves it to your computer in your Downloads folder.

    Nota

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

  7. Fare doppio clic sul certificato push scaricato aps_development.cer.Double-click the downloaded push certificate aps_development.cer.

    Il nuovo certificato verrà installato nel Portachiavi, come mostrato di seguito:This installs the new certificate in the Keychain, as shown below:

    Nota

    Il nome del certificato potrebbe essere diverso, ma verrà preceduto da Apple Development iOS Push Services:.The name in your certificate might be different, but it will be prefixed with Apple Development iOS Push Services:.

  8. 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. Fare clic su Esporta, assegnare un nome al file, selezionare il formato .p12 e quindi fare clic su Salva.Click Export, name the file, select the .p12 format, and then click Save.

    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. Verrà usato per abilitare l'autenticazione con il servizio APN.It will be used to enable authentication with APNS.

    Nota

    In questa esercitazione viene creato un file QuickStart.p12.This tutorial creates a QuickStart.p12 file. Il nome e il percorso del file potrebbero essere diversi.Your file name and location might be different.

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

  1. Nel portale di provisioning iOS selezionare Provisioning Profiles, quindi All e infine fare clic sul pulsante + per creare un nuovo profilo.Back in the iOS Provisioning Portal, select Provisioning Profiles, select All, and then click the + button to create a new profile. Verrà avviata la procedura guidata Add iOS Provisiong ProfileThis launches the Add iOS Provisiong Profile Wizard

  2. Selezionare iOS App Development in Development come tipo di profilo di provisioning e fare clic su Continue.Select iOS App Development under Development as the provisiong profile type, and click Continue.
  3. Selezionare quindi l'ID app appena creato nell'elenco a discesa App IDe fare clic su Continue.Next, select the app ID you just created from the App ID drop-down list, and click Continue

  4. Nella schermata Select certificates selezionare il solito certificato di sviluppo usato per la firma del codice e fare clic su Continue.In the Select certificates screen, select your usual development certificate used for code signing, and click Continue. Questo non è il certificato push appena creato.This is not the push certificate you just created.

  5. In Devices selezionare i dispositivi da usare per il test e fare clic su Continue.Next, select the Devices to use for testing, and click Continue

  6. Scegliere infine un nome per il profilo in Profile Name e fare clic su Generate.Finally, pick a name for the profile in Profile Name, click Generate.

  7. Una volta creato il nuovo profilo di provisioning, fare clic per scaricarlo e installarlo nel computer di sviluppo Xcode.When the new provisioning profile is created click to download it and install it on your Xcode development machine. Fare quindi clic su Done.Then click Done.

Configurare l'hub di notificaConfigure your notification hub

Questa sezione illustra come creare un nuovo hub di notifica e configurare l'autenticazione con il servizio APN usando il certificato push .p12 creato in precedenza.This section walks you through creating a new notification hub and configuring authentication with APNS using the .p12 push certificate that you 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 have already created, you can skip to step 5.

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

  2. Selezionare Nuovo > Web e dispositivi mobili > Hub di notifica.Select New > Web + Mobile > Notification Hub.

    Portale di Azure: creare un hub di notifica

  3. Nella casella Hub di notifica digitare un nome univoco.In the Notification Hub box, type a unique name. Selezionare l'area, la sottoscrizione e il gruppo di risorse (se già disponibili).Select your Region, Subscription, and Resource Group (if you have one already).

    Se si ha già un spazio dei nomi del bus di servizio in cui si vuole creare l'hub, seguire questa procedura:If you already have a service bus namespace that you want to create the hub in, do the following:

    a.a. Nell'area Spazio dei nomi selezionare il collegamento Seleziona esistente.In the Namespace area, select the Select Existing link.

    b.b. Selezionare Crea.Select Create.

    Se non si ha già uno spazio dei nomi del bus di servizio, è possibile usare il nome predefinito, che viene creato in base al nome dell'hub (se lo spazio dei nomi è disponibile).If you don't already have a service bus namespace, you can use the default name, which is created based on the hub name (if the namespace name is available).

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

    Dopo avere creato lo spazio dei nomi e l'hub di notifica, viene aperto il portale di Azure.After you've created the namespace and notification hub, the Azure portal opens.

    Portale di Azure: pagina del portale dell'hub di notifica

  4. Selezionare Impostazioni > Criteri di accesso.Select Settings > Access Policies. Prendere nota delle due stringhe di connessione disponibili.Note the two connection strings that are available to you. Saranno necessarie in un secondo momento per gestire le notifiche push.You will need them to handle push notifications later.

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

  1. Per configurare la connessione del servizio APN, nel portale di Azure aprire le impostazioni dell'hub di notifica, fare clic su Notification Services e quindi fare clic sull'elemento Apple (APNS) nell'elenco.As we want to configure the APNS connection, in the Azure Portal, open your Notification Hub settings, ande click on Notification Services, and then click the Apple (APNS) item in the list. Successivamente, fare clic su Carica certificato e selezionare il certificato con estensione p12 esportato in precedenza, nonché la password per tale certificato.Once done, click on Upload Certificate and select the .p12 certificate that you exported earlier, as well as the password for the certificate.

    Assicurarsi di selezionare la modalità Sandbox perché verranno inviati messaggi push in un ambiente di sviluppo.Make sure to select Sandbox mode since you will be sending push messages in a development environment. Usare l'impostazione Produzione solo se si vogliono inviare notifiche push agli utenti che hanno già acquistato l'app dallo Store.Only use the Production setting if you want to send push notifications to users who already purchased your app from the store.

    

  

L'hub di notifica è ora configurato per l'uso con il servizio APN e sono disponibili le stringhe di connessione per la registrazione dell'app e l'invio di notifiche push.Your notification hub is now configured to work with APNS, and you 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 Xamarin Studio creare un nuovo progetto iOS e selezionare il modello Unified API > Single View Application.In Xamarin Studio, create a new iOS project and select the Unified API > Single View Application template.

    Xamarin Studio: selezionare il tipo di applicazione

  2. È necessario aggiungere un riferimento al componente di messaggistica di Azure.Add a reference to the Azure Messaging component. Nella visualizzazione Solution fare clic con il pulsante destro del mouse sulla cartella Components del progetto e scegliere Get More Components.In the Solution view, right-click the Components folder for your project and choose Get More Components. Cercare il componente Messaggistica di Azure e aggiungerlo al progetto.Search for the Azure Messaging component and add the component to your project.
  3. In AppDelegate.csaggiungere l'istruzione using seguente:In AppDelegate.cs, add the following using statement:

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

     private SBNotificationHub Hub { get; set; }
    
  5. Creare una classe Constants.cs con le variabili seguenti:Create a Constants.cs class with the following variables:

     // Azure app-specific connection string and hub path
     public const string ConnectionString = "<Azure connection string>";
     public const string NotificationHubPath = "<Azure hub path>";
    
  6. In AppDelegate.cs aggiornare FinishedLaunching() in base all'esempio seguente:In AppDelegate.cs, update FinishedLaunching() to match the following:

     public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
     {
         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;
     }
    
  7. Eseguire l'override del metodo RegisteredForRemoteNotifications() in AppDelegate.cs:Override the RegisteredForRemoteNotifications() method in AppDelegate.cs:

     public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken)
     {
         Hub = new SBNotificationHub(Constants.ConnectionString, Constants.NotificationHubPath);
    
         Hub.UnregisterAllAsync (deviceToken, (error) => {
             if (error != null)
             {
                 Console.WriteLine("Error calling Unregister: {0}", error.ToString());
                 return;
             }
    
             NSSet tags = null; // create tags if you want
             Hub.RegisterNativeAsync(deviceToken, tags, (errorCallback) => {
                 if (errorCallback != null)
                     Console.WriteLine("RegisterNativeAsync error: " + errorCallback.ToString());
             });
         });
     }
    
  8. Eseguire l'override del metodo ReceivedRemoteNotification() in AppDelegate.cs:Override the ReceivedRemoteNotification() method in AppDelegate.cs:

     public override void ReceivedRemoteNotification(UIApplication application, NSDictionary userInfo)
     {
         ProcessNotification(userInfo, false);
     }
    
  9. Creare il metodo ProcessNotification() seguente in AppDelegate.cs:Create the following ProcessNotification() method in AppDelegate.cs:

     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 quali 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 vuole gestire scenari di messaggistica push specifici per l'applicazione.This is especially important where the user might start your application in offline mode (e.g. Airplane) and you want to handle push messaging scenarios specific to your app.

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

Invio di notifiche pushSending Push Notifications

È possibile testare la ricezione delle notifiche push nell'app inviando notifiche nel portale di Azure con la funzionalità Invio di prova nel set di strumenti Risoluzione dei problemi, nella pagina dell'hub di notifica, come illustrato nella schermata seguente.You can test receiving push notifications in your app by sending notifications in the [Azure Portal] via the Test Send capability in the Troubleshooting toolset, right in the notification hub page, as shown in the screen below.

Le notifiche push vengono in genere inviate attraverso un servizio back-end come Servizi mobili o ASP.NET usando una libreria compatibile.Push notifications are normally sent through a back-end service like Mobile Services or ASP.NET using a compatible library. È anche possibile usare direttamente l'API REST per l'invio di messaggi push se non è disponibile una libreria nello scenario.You can also use the REST API directly to send push messages if a library is not available in your scenario.

In questa esercitazione verrà usata un'app semplice e verrà illustrato solo il test dell'app client mediante l'invio di notifiche tramite .NET SDK per gli hub di notifica in un'applicazione console, invece che in un servizio back-end.In this tutorial, we will keep it simple and just demonstrate testing your client app by sending notifications using the .NET SDK for notification hubs in a console application instead of a backend service. Come passaggio successivo per l'invio di notifiche da un back-end ASP.NET, è consigliabile vedere l'esercitazione Uso di Hub di notifica di Azure per inviare notifiche agli utenti .We recommend the Use Notification Hubs to push notifications to users tutorial as the next step for sending notifications from an ASP.NET backend. Si possono tuttavia usare gli approcci seguenti per l'invio di notifiche:However, the following approaches can be used for sending notifications:

App per dispositivi mobili: per un esempio di come inviare notifiche da un back-end di app per dispositivi mobili del servizio app di Azure integrato in Hub di notifica, vedere Aggiungere notifiche push all'app iOS.Mobile Apps: For an example of how to send notifications from an Azure App Service Mobile Apps backend that's integrated with Notification Hubs, see Add push notifications to your mobile app.

(Facoltativo) Inviare notifiche push da un'app console .NET.(Optional) Send Push Notifications from a .NET Console App

In questa sezione si invieranno notifiche push con una semplice app console .NET.In this section, we will send push notifications by using a simple .NET console app. Ai fini di questo esempio, si passerà a un ambiente di sviluppo Windows in cui Visual Studio è già installato.For the purposes of this example, we will switch to a Windows development environment that has Visual Studio already installed.

  1. In Visual Studio creare una nuova applicazione console in Visual C#:In Visual Studio, create a new Visual C# console application:

    ![Visual Studio - Create a new console application][213]
    
  2. In Visual Studio fare clic su Strumenti, selezionare Gestione pacchetti NuGet e quindi Console di Gestione pacchetti.In Visual Studio, click Tools, click NuGet Package Manager, and then click Package Manager Console.

    La console di gestione pacchetti viene visualizzata ancorata alla parte inferiore dell'area di lavoro di Visual Studio.The package manager console should appear docked to the bottom of your Visual Studio workspace.

  3. Nella finestra Console di Gestione pacchetti impostare Progetto predefinito sul nuovo progetto di applicazione console, quindi eseguire il comando seguente nella finestra della console:In the Package Manager Console window, set the Default project to your new console application project, and then in the console window, execute the following command:

     Install-Package Microsoft.Azure.NotificationHubs
    

    Verrà aggiunto un riferimento all’SDK dell’Hub di notifica di Azure mediante il pacchetto NuGet Microsoft.Azure.NotificationHubs.This adds a reference to the Azure Notification Hubs SDK using the Microsoft.Azure.Notification Hubs NuGet package.

  4. Aprire il file Program.cs e aggiungere l'istruzione using seguente, assicurandosi che sia possibile usare le classi e le funzioni di Azure all'interno della classe principale:Open the Program.cs file and add the following using statement, ensuring that we can use Azure classes and functions within your main class:

     using Microsoft.Azure.NotificationHubs;
    
  5. Nella classe Program aggiungere il metodo seguente senza tralasciare di sostituire la stringa di connessione e il nome dell'hub:In your Program class, add the following method (don't forget to replace the connection string and hub name):

     private static async void SendNotificationAsync()
     {
         NotificationHubClient hub = NotificationHubClient.CreateClientFromConnectionString("<connection string with full access>", "<hub name>");
         var alert = "{\"aps\":{\"alert\":\"Hello from .NET!\"}}";
         await hub.SendAppleNativeNotificationAsync(alert);
     }
    
  6. Aggiungere le righe seguenti nel metodo Main :Add the following lines in your Main method:

      SendNotificationAsync();
      Console.ReadLine();
    
  7. Premere F5 per eseguire l'app.Press the F5 key to run the app. Entro pochi secondi dovrebbe essere visualizzata una notifica push nel dispositivo.Within seconds, you should see a push notification appear on your device. Se si usa una rete dati cellulare o il Wi-Fi, assicurarsi di avere una connessione Internet attiva nel dispositivo.Whether you are using Wi-Fi or a cellular data network, make sure that you have an active internet connection on the device.

È possibile trovare tutti i payload disponibili nella guida alla programmazione di notifiche push e localidi Apple.You can find all the possible payloads in the Apple [Local and Push Notification Programming Guide].

(Facoltativo) Inviare notifiche da un servizio mobile(Optional) Send Notifications from a Mobile Service

In questa sezione si invieranno notifiche push usando un servizio mobile con uno script node.In this section, we will send push notifications using a mobile service through a node script.

Per inviare una notifica tramite un servizio mobile, vedere Introduzione a Servizi mobilie quindi seguire questa procedura:To send a notification by using a mobile service, follow [Get started with Mobile Services], and then:

  1. Accedere al portale di Azure classicoe selezionare il servizio mobile.Sign in to the [Azure Classic Portal], and select your mobile service.
  2. Selezionare la scheda Utilità di pianificazione in alto.Select the Scheduler tab on the top.

    ![Azure Classic Portal - Scheduler][215]
    
  3. Creare un nuovo processo pianificato, immettere un nome, quindi scegliere On demand.Create a new scheduled job, insert a name, and select On demand.

    ![Azure Classic Portal - Create new job][216]
    
  4. Una volta creato il processo, fare clic sul relativo nome.When the job is created, click the job name. Fare quindi clic sulla scheda Script nella barra superiore.Then click the Script tab on the top bar.
  5. Inserire lo script seguente all'interno della funzione dell'utilità di pianificazione.Insert the following script inside your scheduler function. Assicurarsi di sostituire i segnaposto con il nome dell'hub di notifica e la stringa di connessione associata a DefaultFullSharedAccessSignature ottenuti nel passaggio precedente.Make sure to replace the placeholders with your notification hub name and the connection string for DefaultFullSharedAccessSignature that you obtained earlier. Fare clic su Save.Click Save.

     var azure = require('azure');
     var notificationHubService = azure.createNotificationHubService('<Hubname>', '<SAS Full access >');
     notificationHubService.apns.send(
         null,
         {"aps":
             {
               "alert": "Hello from Mobile Services!"
             }
         },
         function (error)
         {
             if (!error) {
                 console.warn("Notification successful");
             }
         }
     );
    
  6. Fare clic su Run Once sulla barra inferiore.Click Run Once on the bottom bar. Si dovrebbe ricevere un avviso sul dispositivo.You should receive an alert on your device.

Passaggi successiviNext steps

In questo semplice esempio le notifiche push vengono trasmesse a tutti i dispositivi iOS.In this simple example, you broadcasted push notifications to all your iOS devices. Per rivolgersi a utenti specifici, fare riferimento all'esercitazione Usare Hub di notifica per inviare notifiche push agli utenti.In order to target specific users, refer to the tutorial [Use Notification Hubs to push notifications to users]. Se si desidera segmentare gli utenti per gruppi di interesse, consultare Uso di Hub di notifica per inviare le ultime notizie.If you want to segment your users by interest groups, you can read [Use Notification Hubs to send breaking news]. Per altre informazioni sull'uso di Hub di notifica, vedere Panoramica dell'Hub di notifica e Procedure di Hub di notifica per iOS.Learn more about how to use Notification Hubs in [Notification Hubs Guidance] and in the [Notification Hubs How-To for iOS].