Ricevi notifiche push con SNS (Xamarin iOS) - AWS Mobile SDK

L'SDKAWS Mobile per Xamarin è ora incluso inAWS SDK for .NET. Questa guida fa riferimento alla versione archiviata di Mobile SDK per Xamarin.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ricevi notifiche push con SNS (Xamarin iOS)

Questo documento spiega come inviare notifiche push a un'applicazione Xamarin iOS utilizzando Amazon Simple Notification Service (SNS) e AWS Mobile SDK for .NET and Xamarin.

Configurazione progetto

Prerequisiti

È necessario seguire le istruzioni riportate allaConfigurazione dell'SDK AWS Mobile per.NET e Xamarinprima di iniziare questo tutorial.

Imposta autorizzazioni per SNS

Segui il passaggio 2 inConfigurazione dell'SDK AWS Mobile per.NET e Xamarinper allegare la politica menzionata di seguito ai ruoli della tua candidatura. Ciò darà alla tua applicazione le autorizzazioni appropriate per accedere a SNS:

  1. Passa allaConsole IAMe seleziona il ruolo IAM da configurare.

  2. Fare clic suCollegamento della policy, seleziona AmazonSNSFullAccesspolicy e cliccaCollegamento della policy.

avvertimento

Utilizzo di AmazonSNSFullAccessNon è raccomandato in un ambiente di produzione. Lo usiamo qui per permetterti di iniziare a usare rapidamente. Per ulteriori informazioni sulla definizione delle autorizzazioni per un ruolo IAM, consultaPanoramica delle autorizzazioni del ruolo IAM.

Ottieni l'iscrizione al programma Apple iOS Developer

Dovrai eseguire l'app su un dispositivo fisico per ricevere notifiche push. Per eseguire la tua app su un dispositivo, devi avere un abbonamento alIscrizione al programma per sviluppatori Apple iOS. Quando disponi di un abbonamento, puoi utilizzare Xcode per generare un'identità di firma. Per ulteriori informazioni, consulta AppleQuick Start Distributiondocumentazione.

Crea un certificato iOS

In primo luogo, devi creare un certificato iOS. Quindi, è necessario creare un profilo di provisioning configurato per le notifiche push. A questo proposito:

  1. Passa allaCentro membri Apple Developer, fare clic suCertificati, identificatori e profili.

  2. Fare clic suIdentificatori disottoApp iOS, fai clic sul pulsante più nell'angolo in alto a destra della pagina Web per aggiungere un nuovo ID app iOS e inserisci una descrizione dell'ID app.

  3. Scorrere fino alla barra degli strumentiAggiungi suffisso IDsezione e selezionaID app esplicitoe inserisci il tuo identificatore del bundle.

  4. Scorrere fino alla barra degli strumentiApp Servicessezione e selezionaNotifiche push.

  5. Fai clic su Continue (Continua).

  6. Fare clic su Submit (Invia).

  7. Fare clic suFatto.

  8. Seleziona l'ID app appena creato e fai clic suModificare.

  9. Scorrere fino alla barra degli strumentiNotifiche pushsezione. Fare clic suCreazione di certificatosottoSviluppo del certificato SSL.

  10. Segui le istruzioni per creare una richiesta di firma del certificato (CSR), carica la richiesta e scarica un certificato SSL che verrà utilizzato per comunicare con Apple Notification Service (APNS).

  11. Torna allaCertificati, identificatori e profili(Certificato creato). Fare clic suAll (Tutti)sottoProfili di provisioning.

  12. Fare clic sul pulsante più nell'angolo in alto a destra per aggiungere un nuovo profilo di provisioning.

  13. SelezionaSviluppo di app iOS, quindi fai clic suContinua.

  14. Selezionare l'ID dell'app, quindi fare clic suContinua.

  15. Selezionare il certificato dello sviluppatore, quindi fare clic suContinua.

  16. Selezionare il dispositivo, quindi fare clic suContinua.

  17. Immettere un nome del profilo, quindi fare clic suGenera.

  18. Scarica e fai doppio clic sul file di provisioning per installare il profilo di provisioning.

Per ulteriori informazioni sul provisioning di un profilo configurato per le notifiche push, consultaConfigurazione delle notifiche pushdocumentazione.

Utilizzare il certificato per creare ARN della piattaforma in SNS Console

  1. EseguireKeyChainaccedi all'app, selezionaI miei certificatinella parte inferiore sinistra dello schermo, quindi fare clic con il pulsante destro del mouse sul certificato SSL generato per connettersi a APNS e selezionareEsportazione. Ti verrà richiesto di specificare un nome per il file e una password per proteggere il certificato. Il certificato verrà salvato in un file P12.

  2. Passa allaConsole SNSe fai clic suApplicazionisul lato sinistro dello schermo.

  3. Fare clic suCreazione di applicazioni per piattaformeCreazione di una nuova applicazione di piattaforma SNS.

  4. Immettere unNome applicazione.

  5. SelezionaSviluppo AppleperPiattaforma di notifiche push.

  6. Fare clic suSelezionare Filee seleziona il file P12 creato quando hai esportato il certificato SSL.

  7. Immetti la password specificata all'esportazione del certificato SSL e fai clic suCarica le credenziali da file.

  8. Fare clic suCreazione di applicazioni per piattaforme.

  9. Seleziona l'applicazione Platform appena creata e copia l'ARN dell'applicazione. Questo ARN sarà necessario nei prossimi passaggi.

InserisciNuGetPacchetto per SNS per il tuo progetto

Seguire il passaggio 4 delle istruzioni riportate inConfigurazione dell'SDK AWS Mobile per.NET e Xamarinper aggiungere Amazon Simple Notification ServiceNuGetpacchetto per il tuo progetto.

Creazione di un client SNS

var snsClient = new AmazonSimpleNotificationServiceClient(credentials, region);

Registra la tua applicazione per le notifiche remote

Per registrare una domanda, chiamaRegisterForRemoteNotificationssul tuo oggetto UIApplication, come mostrato di seguito. Inserire il seguente codice inAppDelegate.cs, inserendo l'ARN dell'applicazione della piattaforma dove richiesto di seguito:

public override bool FinishedLaunching(UIApplication app, NSDictionary options) { // do something var pushSettings = UIUserNotificationSettings.GetSettingsForTypes ( UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound, null ); app.RegisterUserNotifications(pushSettings); app.RegisterForRemoteNotifications(); // do something return true; } public override void RegisteredForRemoteNotifications(UIApplication application, NSData token) { var deviceToken = token.Description.Replace("<", "").Replace(">", "").Replace(" ", ""); if (!string.IsNullOrEmpty(deviceToken)) { //register with SNS to create an endpoint ARN var response = await SnsClient.CreatePlatformEndpointAsync( new CreatePlatformEndpointRequest { Token = deviceToken, PlatformApplicationArn = "YourPlatformArn" /* insert your platform application ARN here */ }); } }

Invia un messaggio dalla console SNS al tuo endpoint

  1. Passa allaSNS Console > Applicazioni.

  2. Seleziona l'applicazione della piattaforma, seleziona un endpoint e fai clic suPubblicazione su endpoint.

  3. Digita un messaggio di testo nella casella di testo e fai clic suPubblicazione di messaggiPer pubblicare un messaggio.