Partager via


Notifications watchOS dans Xamarin

Les applications espionne peuvent recevoir des notifications si l’application iOS contenant les prend en charge. Il existe une gestion intégrée des notifications afin que vous n’ayez pas besoin d’ajouter la prise en charge supplémentaire des notifications décrites ci-dessous. Toutefois, si vous souhaitez personnaliser le comportement de notification et l’apparence, lisez-la.

Pour plus d’informations sur l’ajout de la prise en charge des notifications à l’application iOS dans votre solution, reportez-vous à la documentation sur les notifications iOS.

Création de contrôleurs de notification

Sur les contrôleurs de notifications storyboard, vous disposez d’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, il aura automatiquement un segue attaché :

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

Lorsque la notification segue est sélectionnée, vous pouvez modifier ses propriétés :

Le 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 :

  • Courte apparence : vue statique non défilement définie par le système.

  • Long-look - affichage défilant, personnalisable défini par vous ! Une version plus simple, statique et une version dynamique plus complexe peuvent être spécifiées.

Contrôleur de notification de courte apparence

L’interface utilisateur de courte apparence se compose uniquement de l’icône de l’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 de longue apparence qui fournit plus d’informations.

Contrôleur de notification de longue apparence

Le système d’exploitation détermine 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

La vue statique doit être simple et rapide à afficher.

Vue statique

Dynamique

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

Vue 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 des notifications iOS pour obtenir un exemple de génération de notifications locales.

Les notifications locales doivent avoir le AlertTitle jeu à afficher sur Apple Watch : la AlertTitle chaîne est affichée dans l’interface Short-Look. Les AlertTitleAlertBody deux sont affichés dans la liste des notifications ; et s’affichent AlertBody dans l’interface Long-Look.

Cette capture d’écran montre l’affichage AlertTitle dans la liste des notifications et l’affichage AlertBody dans l’interface Long-Look :

Cette capture d’écran montre l’affichage d’AlertTitle dans la liste des notificationsAlertBody affiché dans l’interface Long-Look

Notifications de test

Les notifications (locales et distantes) peuvent uniquement être testées correctement 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 des notifications sur une Apple Watch, n’oubliez pas que la documentation d’Apple indique ce qui suit :

Quand l’une des notifications locales ou distantes de votre application arrive sur l’i Téléphone de l’utilisateur, iOS décide d’afficher cette notification sur i Téléphone ou sur l’Apple Watch.

Cela fait allusion au fait que iOS décide si une notification s’affiche sur l’i Téléphone ou sur la montre. Si l’i Téléphone jumelé est actif lorsqu’une notification est reçue, la notification est susceptible d’être affichée sur l’i Téléphone et non routée vers la montre.

Pour vous assurer que la notification s’affiche sur la montre, désactivez l’écran i Téléphone (appuyez une fois sur le bouton d’alimentation) ou laissez-la dormir. Si la montre jumelée est en gamme, a la puissance et est portée sur votre poignet, la notification sera acheminée là-bas et apparaît 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 d’accès dans la fenêtre Arguments d’exécution personnalisés dans Visual Studio pour Mac.

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

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

Cette opération ouvre la fenêtre Arguments d’exécution qui contient un onglet WatchKit . Sélectionnez Notification et fournissez une charge utile JSON, puis appuyez sur Execute pour démarrer l’application espion 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

Un exemple de fichier JSON de charge utile NotificationPayload.json est illustré 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."
    }