Condividi tramite


WatchOS Notifications in Xamarin

Guardare le app possono ricevere notifiche se l'app iOS contenitore li supporta. È disponibile una gestione delle notifiche predefinita, pertanto non è necessario aggiungere il supporto aggiuntivo per le notifiche descritto di seguito, tuttavia, se si vuole personalizzare il comportamento e l'aspetto delle notifiche, leggere.

Per altre informazioni sull'aggiunta del supporto delle notifiche all'app iOS nella soluzione, vedere il documento Notifiche iOS.

Creazione di controller di notifica

Nei controller delle notifiche dello storyboard è disponibile un tipo speciale di attivazione. Quando si trascina un nuovo controller di interfaccia di notifica in uno storyboard, verrà automaticamente associato un segue:

Un nuovo controller di interfaccia di notifica con un segue collegato

Quando la notifica segue è selezionata, è possibile modificarne le proprietà:

La notifica segue selezionata

Dopo aver personalizzato il controller, può essere simile a questo esempio di WatchKitCatalog:

Proprietà di notifica

Esistono due tipi di notifica:

  • Breve aspetto : visualizzazione statica non scorrevole definita dal sistema.

  • Aspetto lungo : visualizzazione scorrevole e personalizzabile definita dall'utente. È possibile specificare una versione più semplice e statica e una versione dinamica più complessa.

Controller di notifica a breve aspetto

L'interfaccia utente a breve aspetto è costituita solo dall'icona dell'app, dal nome dell'app e dalla stringa del titolo della notifica.

Se l'utente non ignora la notifica, il sistema passerà automaticamente a una notifica di tipo long look che fornisce altre informazioni.

Controller di notifica long-look

Il sistema operativo decide se visualizzare la visualizzazione statica o dinamica in base a diversi fattori. È necessario fornire un'interfaccia statica e, facoltativamente, includere anche un'interfaccia dinamica per le notifiche.

Statico

La visualizzazione statica deve essere semplice e veloce da visualizzare.

Visualizzazione statica

Dinamico

La visualizzazione dinamica può visualizzare più dati e offrire maggiore interattività.

Visualizzazione dinamica

Generazione di notifiche

Le notifiche possono provenire da un server remoto o possono essere generate localmente nell'app iOS.

Per un esempio di come generare notifiche locali, vedere la procedura dettagliata per le notifiche iOS.

Le notifiche locali devono avere il AlertTitle set da visualizzare nella Apple Watch. La AlertTitle stringa viene visualizzata nell'interfaccia Short-Look. Entrambi gli oggetti AlertTitle e AlertBody vengono visualizzati nell'elenco delle notifiche e AlertBody vengono visualizzati nell'interfaccia Long-Look.

Questo screenshot mostra l'oggetto AlertTitle visualizzato nell'elenco delle notifiche e l'oggetto AlertBody visualizzato nell'interfaccia Long-Look:

Questa schermata mostra l'elemento AlertTitle visualizzato nell'elenco delle notifiche AlertBody visualizzato nell'interfaccia Long-Look

Test delle notifiche

Le notifiche (sia locali che remote) possono essere testate correttamente solo in un dispositivo, ma possono essere simulate usando un file .json nel simulatore iOS.

Test su Apple Watch

Quando si testano le notifiche in un Apple Watch, tenere presente che la documentazione di Apple indica quanto segue:

Quando una delle notifiche locali o remote dell'app arriva sull'iPhone dell'utente, iOS decide se visualizzare tale notifica sull'iPhone o sul Apple Watch.

Questo è alludente al fatto che iOS decide se una notifica verrà visualizzata sull'iPhone o sull'orologio. Se l'iPhone associato è attivo quando viene ricevuta una notifica, è probabile che la notifica venga visualizzata sull'iPhone e non indirizzata all'orologio.

Per assicurarsi che la notifica venga visualizzata sull'orologio, disattivare lo schermo dell'iPhone (premendo il pulsante di alimentazione una volta) o lasciarlo dormire. Se l'orologio associato è in gamma, ha potenza e viene indossato sul polso, la notifica verrà instradata lì e apparirà sull'orologio (accompagnato da un sottile ).

Test nel simulatore iOS

È necessario fornire un payload JSON di test durante il test della modalità di notifica nel simulatore iOS. Impostare il percorso nella finestra Argomenti di esecuzione personalizzati in Visual Studio per Mac.

Visual Studio per Mac verranno visualizzate opzioni aggiuntive quando un'estensione espressioni di controllo è impostata come Progetto di avvio. Fare clic con il pulsante destro del mouse sul progetto di estensione espressioni di controllo e scegliere Esegui con > parametri personalizzati...:

Esecuzione con proprietà personalizzate

Verrà aperta la finestra Argomenti di esecuzione che contiene una scheda WatchKit . Selezionare Notifica e fornire un payload JSON, quindi premere Esegui per avviare l'app watch nel simulatore:

Selezionare Il payload di notifica predefinito

Il controller di notifica predefinito è simile al seguente quando si esegue il test nel simulatore con il file JSON del payload predefinito:

Una notifica di esempio

È anche possibile usare la riga di comando per avviare il simulatore iOS.

Payload di notifica di esempio

Di seguito è riportato un esempio di file JSON di payload NotificationPayload.json :

{
    "aps": {
        "alert": "Test message content",
        "title": "Optional title",
        "category": "myCategory"
        },

        "WatchKit Simulator Actions": [
        {
            "title": "First Button",
            "identifier": "firstButtonAction"
        }
        ],

        "customKey": "Use this file to define a testing payload for your notifications. The aps dictionary specifies the category, alert text and title. The WatchKit Simulator Actions array can provide info for one or more action buttons in addition to the standard Dismiss button. Any other top level keys are custom payload. If you have multiple such JSON files in your project, you'll be able to choose between them in when selecting to debug the notification interface of your Watch App."
    }