Notifications watchOS dans Xamarin

Les applications d’observation peuvent recevoir des notifications si l’application iOS contenant les prend en charge. Il existe une gestion intégrée des notifications, de sorte que vous n’avez pas besoin d’ajouter la prise en charge de notification supplémentaire décrite ci-dessous, mais si vous souhaitez personnaliser le comportement et l’apparence des notifications, poursuivez la lecture.

Reportez-vous au document Notifications iOS pour plus d’informations sur l’ajout de la prise en charge des notifications à l’application iOS dans votre solution.

Création de contrôleurs de notification

Sur le storyboard notifications, les contrôleurs ont un type spécial de segue qui les déclenche. Lorsque vous faites glisser un nouveau contrôleur d’interface de notification sur un storyboard, un segue est automatiquement attaché :

Un nouveau contrôleur d’interface de notification avec un segue attaché

Lorsque le segue de notification est sélectionné, vous pouvez modifier ses propriétés :

Segue de notification sélectionné

Une fois que vous avez personnalisé le contrôleur, il peut ressembler à cet exemple à partir de WatchKitCatalog :

Propriétés de notification

Il existe deux types de notification :

  • Short-look : affichage statique non scrollable défini par le système.

  • Long-look - vue défilante et personnalisable définie par vous! Une version statique plus simple et une version dynamique plus complexe peuvent être spécifiées.

contrôleur de notification Short-Look

L’interface utilisateur d’apparence courte se compose uniquement de l’icône d’application, du nom de l’application et de la chaîne de titre de notification.

Si l’utilisateur n’ignore pas la notification, le système bascule automatiquement vers une notification d’apparence longue qui fournit plus d’informations.

contrôleur de notification Long-Look

Le système d’exploitation décide s’il faut afficher la vue statique ou dynamique en fonction d’un certain nombre de facteurs. Vous devez fournir une interface statique et éventuellement inclure une interface dynamique pour les notifications.

statique

L’affichage statique doit être simple et rapide à afficher.

Vue statique

Dynamique

La vue dynamique peut afficher plus de données et fournir plus d’interactivité.

Affichage dynamique

Génération de notifications

Les notifications peuvent provenir d’un serveur distant ou être générées localement dans l’application iOS.

Reportez-vous à la procédure pas à pas notifications iOS pour obtenir un exemple de génération de notifications locales.

Les notifications locales doivent être AlertTitle définies pour être affichées sur l’Apple Watch . La AlertTitle chaîne s’affiche dans l’interface Short-Look. AlertTitle Les et AlertBody sont affichés dans la liste des notifications; et le AlertBody est affiché dans l’interface Long-Look.

Cette capture d’écran montre le AlertTitle qui s’affiche dans la liste des notifications et le AlertBody affiché dans l’interface Long-Look :

Cette capture d’écran montre l’objet AlertTitle affiché dans la liste des notificationsThe AlertBody affiché dans l’interface Long-Look

Notifications de test

Les notifications (locales et distantes) ne peuvent être correctement testées que sur un appareil, mais elles peuvent être simulées à l’aide d’un fichier .json dans le simulateur iOS.

Test sur Apple Watch

Lorsque vous testez les notifications sur une Apple Watch, n’oubliez pas que la documentation d’Apple indique ce qui suit :

Lorsque l’une des notifications locales ou distantes de votre application arrive sur l’iPhone de l’utilisateur, iOS décide s’il faut afficher cette notification sur l’iPhone ou sur l’Apple Watch.

Cela fait allusion au fait qu’iOS décide si une notification apparaîtra sur l’iPhone ou sur la Watch. Si l’iPhone jumelé est actif lors de la réception d’une notification, la notification est susceptible d’être affichée sur l’iPhone et non acheminée vers la montre.

Pour vous assurer que la notification s’affiche sur le watch, éteignez l’écran de l’iPhone (appuyez une fois sur le bouton d’alimentation) ou laissez-le en veille. Si la montre jumelée est à portée, a de la puissance et est portée sur votre poignet, la notification y sera acheminée et apparaîtra sur la montre (accompagnée d’un subtil ).

Test sur le simulateur iOS

Vous devez fournir une charge utile JSON de test lors du test du mode de notification dans le simulateur iOS. Définissez le chemin dans la fenêtre Arguments d’exécution personnalisée dans Visual Studio pour Mac.

Visual Studio pour Mac affiche des options supplémentaires lorsqu’une extension watch est définie comme projet de démarrage. Cliquez avec le bouton droit sur le projet d’extension watch et choisissez Exécuter avec > des paramètres personnalisés... :

Exécution avec des propriétés personnalisées

La fenêtre Arguments d’exécution qui contient un onglet WatchKit s’ouvre. Sélectionnez Notification et fournissez une charge utile JSON, puis appuyez sur Exécuter pour démarrer l’application watch dans le simulateur :

Sélectionner la charge utile de notification par défaut

Le contrôleur de notification par défaut ressemble à ceci lors du test sur le simulateur avec le fichier JSON de charge utile par défaut :

Exemple de notification

Il est également possible d’utiliser la ligne de commande pour démarrer le simulateur iOS.

Exemple de charge utile de notification

Dans l’exemple Watch Kit Catalog , il existe un exemple de fichier JSON de charge utile NotificationPayload.json (répertorié ci-dessous).

{
    "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."
    }