Aller au contenu principal

iOS - Implémenter les notifications à distance

Dans cette page, vous découvrirez comment les notifications sont gérées dans votre application et quelles sont toutes les options à votre disposition pour créer une excellente expérience de messagerie pour vos utilisateurs.

avertissement

Notificare prend en charge plusieurs types de notifications interactives et exploitables qui seront traitées pour vous sans aucun développement supplémentaire. Si vous souhaitez empêcher ce comportement par défaut, veuillez noter que vous devrez soit gérer toutes les fonctionnalités vous-même (enregistrement des métriques, présentation de l'interface utilisateur ou collecte des réponses), ou si vous ne le faites pas, vous comprenez que certaines fonctionnalités ne fonctionneront pas comme annoncé. .

Activation des notifications

Pour permettre à l'appareil de recevoir des notifications, il vous suffit d'invoquer une seule méthode.

Notificare.shared.push().enableRemoteNotifications { result in

}

En règle générale, l'étape ci-dessus est effectuée lors d'une certaine forme d'intégration des utilisateurs. Lorsque l'utilisateur a déjà suivi ce flux, nous activons automatiquement les notifications au lancement de Notificare.

Vous pouvez également vérifier si l'utilisateur s'est inscrit aux notifications à distance.

Notificare.shared.push().hasRemoteNotificationsEnabled

De plus, vous pouvez vérifier si l'utilisateur a désactivé les notifications dans les paramètres système.

Notificare.shared.push().allowedUI

Désactiver les notifications à distance

La désactivation des notifications à distance peut être réalisée de la même manière que leur activation.

Notificare.shared.push().disableRemoteNotifications { result in

}

Lorsque cette méthode est appelée, nous enregistrerons automatiquement votre appareil pour ne jamais recevoir de notifications à distance, même si vous conserverez toujours le même profil utilisateur, les mêmes messages de boîte de réception et profiterez de tous les autres services pris en charge par votre forfait. Vous pouvez à tout moment demander une réinscription aux notifications push si vous le souhaitez.

Recevoir des notifications

Avant de pouvoir commencer à recevoir des notifications push, vous devrez définir les fonctionnalités de votre projet. Accédez à la cible de votre application (dans le Portail des développeurs Apple), cliquez sur l'onglet Capacités et ajoutez à la fois les notifications push et les modes d'arrière-plan/notifications à distance comme indiqué ci-dessous.

alt text

Options d'autorisation

Notre SDK vous permet de définir les options d'autorisation de notification que vous souhaitez demander à votre utilisateur. Il s'agit d'une étape facultative, si elle n'est pas définie, nous enregistrerons UNAuthorizationOptions.alert, UNAuthorizationOptions.badge et UNAuthorizationOptions.sound par défaut. Pour définir les options d'autorisation, veuillez ajouter ce qui suit à votre AppDelegate et personnaliser si nécessaire :

if #available(iOS 13.0, *) {
Notificare.shared.push().authorizationOptions = [.alert, .badge, .sound, .providesAppNotificationSettings, .provisional, .announcement]
} else if #available(iOS 12.0, *) {
Notificare.shared.push().authorizationOptions = [.alert, .badge, .sound, .providesAppNotificationSettings, .provisional]
} else {
Notificare.shared.push().authorizationOptions = [.alert, .badge, .sound]
}

Veuillez noter que les options d'autorisation suivantes sont disponibles : UNAuthorizationOptions.announcement introduite pour la première fois dans iOS 13. Les options UNAuthorizationOptions.providesAppNotificationSettings et UNAuthorizationOptions.provisional sont disponibles depuis iOS 12. L'option UNAuthorizationOptions .announcement permettra à Siri de lire automatiquement les messages sur les AirPods, le L'option UNAuthorizationOptions.provisional enregistrera les notifications avec une autorisation provisoire, cela signifie que les utilisateurs ne seront pas invités à accepter les notifications dans la boîte de dialogue d'autorisation. Bien que cela puisse être un excellent moyen d'autoriser les utilisateurs à recevoir des notifications à distance, tout message que vous enverrez par la suite sera transmis silencieusement. Les messages transmis silencieusement ne seront pas affichés sur l’écran de verrouillage ni émis de son.

Notez également que si vous implémentez l'option UNAuthorizationOptions.providesAppNotificationSettings, les notifications de votre application afficheront un bouton à la fois dans le menu de réglage instantané et dans les paramètres de notification. Le but de ce bouton est de fournir aux utilisateurs un raccourci vers les paramètres de votre application où ils peuvent affiner le type de notifications qu'ils souhaitent recevoir. La mise en œuvre de telles vues de paramètres est fortement recommandée, car cela pourrait être la raison pour laquelle vous autorisez votre application à conserver les notifications d'affichage ou à être complètement muette. Si vous implémentez cette option, il est obligatoire d'implémenter la méthode NotificarePushDelegate suivante :

func notificare(_ notificare: NotificarePush, shouldOpenSettings notification: NotificareNotification?) {
// Deep link to your settings view.
}

Cela vous donnera la possibilité de présenter à vos utilisateurs la vue des paramètres de l'application où vous devrez leur permettre de personnaliser le type de notifications qu'ils doivent recevoir. Si l'utilisateur a cliqué sur le bouton d'une notification spécifique, vous recevrez également cet objet. Lorsqu'il provient des paramètres de notification, cet objet sera nul.

Options de présentation

Vous pouvez éventuellement activer les options de présentation lorsque votre application est au premier plan. Cela vous permettra d'afficher une petite bannière en haut de votre application, d'émettre un son ou de badger votre application, chaque fois qu'une notification arrive et que votre application est utilisée. Par défaut, notre bibliothèque définira cela sur UNNotificationPresentationOptions = [], mais vous pouvez modifier ce comportement en fonction de vos besoins :

if #available(iOS 14.0, *) {
Notificare.shared.push().presentationOptions = [.banner, .sound, .badge]
} else {
Notificare.shared.push().presentationOptions = [.alert, .sound, .badge]
}

Écouter les notifications reçues

Une fois que vous recevez des notifications dans votre application, nous pouvons approfondir et comprendre pleinement comment elles sont traitées. Si vous souhaitez être averti des notifications entrantes dans votre instance NotificarePushDelegate, par exemple pour ajouter un badge dans votre application, vous pouvez implémenter la méthode suivante.

extension AppDelegate: NotificarePushDelegate {
func notificare(_ notificare: NotificarePush, didReceiveNotification notification: NotificareNotification, deliveryMechanism: NotificareNotificationDeliveryMechanism) {

}
}

Présenter les notifications

Une notification peut être ouverte en appuyant soit sur la notification elle-même, soit en appuyant sur une action dans la notification. Nous émettrons un événement dans chaque cas au NotificarePushDelegate.

extension AppDelegate: NotificarePushDelegate {
func notificare(_ notificare: NotificarePush, didOpenNotification notification: NotificareNotification) {

}

func notificare(_ notificare: NotificarePush, didOpenAction action: NotificareNotification.Action, for notification: NotificareNotification) {

}
}

Pour gérer les événements ci-dessus, vous pouvez adopter l'approche gérée et utiliser notre module NotificarePushUI qui prend en charge tous les événements et types d'interface utilisateur ainsi que les actions, ou vous pouvez les prendre entièrement en charge et les présenter comme vous le souhaitez. Cependant, soyez conscient si vous adoptez une approche non gérée, car vous devrez gérer tous les aspects et types de présentation des notifications, y compris les événements nécessaires pour montrer l'engagement de l'utilisateur dans notre tableau de bord.

La première chose dont vous avez besoin, pour gérer tous les types de notifications, est de vous assurer que votre application déclare les autorisations suivantes dans le fichier « Info.plist » de votre application :Info.plist de votre application :

alt text

Cela garantira que votre application peut demander l'accès à l'appareil photo ou à la photothèque de l'appareil chaque fois que cela est nécessaire.

Le code ci-dessous illustre comment cela fonctionne lors de l'utilisation de l'approche gérée.

extension AppDelegate: NotificarePushDelegate {
func notificare(_ notificare: NotificarePush, didOpenNotification notification: NotificareNotification) {
let controller: UIViewController = /* find your desired controller to present the UI in */

Notificare.shared.pushUI().presentNotification(notification, in: controller)
}

func notificare(_ notificare: NotificarePush, didOpenAction action: NotificareNotification.Action, for notification: NotificareNotification) {
let controller: UIViewController = /* find your desired controller to present the UI in */

Notificare.shared.pushUI().presentAction(action, for: notification, in: controller)
}
}

De plus, lorsque vous utilisez l’approche gérée, vous pouvez écouter les événements du cycle de vie des notifications et effectuer toutes les étapes supplémentaires dont vous pourriez avoir besoin. Laissez votre AppDelegate implémenter NotificarePushUIDelegate et ajoutez les méthodes suivantes si nécessaire.

extension AppDelegate: NotificarePushUIDelegate {
// MARK: - Notifications

func notificare(_ notificare: NotificarePushUI, willPresentNotification notification: NotificareNotification) {

}

func notificare(_ notificare: NotificarePushUI, didPresentNotification notification: NotificareNotification) {

}

func notificare(_ notificare: NotificarePushUI, didFinishPresentingNotification notification: NotificareNotification) {

}

func notificare(_ notificare: NotificarePushUI, didFailToPresentNotification notification: NotificareNotification) {

}

func notificare(_ notificare: NotificarePushUI, didClickURL url: URL, in notification: NotificareNotification) {

}

// MARK: - Actions

func notificare(_ notificare: NotificarePushUI, willExecuteAction action: NotificareNotification.Action, for notification: NotificareNotification) {

}

func notificare(_ notificare: NotificarePushUI, didExecuteAction action: NotificareNotification.Action, for notification: NotificareNotification) {

}

func notificare(_ notificare: NotificarePushUI, didNotExecuteAction action: NotificareNotification.Action, for notification: NotificareNotification) {

}

func notificare(_ notificare: NotificarePushUI, didFailToExecuteAction action: NotificareNotification.Action, for notification: NotificareNotification, error: Error?) {

}

func notificare(_ notificare: NotificarePushUI, shouldPerformSelectorWithURL url: URL, in action: NotificareNotification.Action, for notification: NotificareNotification) {

}
}
avertissement

Si vous envisagez de prendre en charge les pages non HTTPS lorsque vous utilisez le type de notification Page Web, vous devrez également déclarer une politique ATS plus permissive comme suit :

alt text