Implémenter les notifications push sur iOS
Si vous avez terminé les étapes décrites dans le guide de Set-up et récupéré le fichier SDK sur le dépôt Git pour app push sur iOS, vous êtes maintenant prêt à implémenter notre bibliothèque iOS dans votre application. Notre bibliothèque prend en charge iOS version 13 et ultérieure. Assurez-vous de disposer de la dernière version de Xcode lorsque vous utilisez cette bibliothèque.
Si vous effectuez une mise à niveau à partir d'une ancienne version de notre bibliothèque, c'est toujours une bonne idée de lire notre guide de migration.
Dépendances
Le SDK Notificare est compatible avec les applications prenant en charge iOS 13 et supérieur et peut être installé avec Swift Package Manager ou CocoaPods.
- Swift Package Manager
- CocoaPods
- Si vous utilisez Swift Package Manager, ouvrez le menu Fichier > Swift Packages > Ajouter une dépendance de package.
- Dans l'invite Choisir le référentiel de packages, ajoutez l'URL suivante :
https://github.com/Notificare/notificare-sdk-ios.git
- Appuyez sur Suivant et terminez les étapes restantes.
Pour plus d'informations sur SPM, consultez leur documentation officielle.
- Si vous ne l'avez pas fait, installez une version récente de CocoaPods.
- Si vous n'avez pas de Podfile existant, exécutez la commande suivante pour en créer un :
pod init
- Ajoutez les dépendances à votre Podfile :
# Required
pod 'Notificare/NotificareKit'
# Optional modules
pod 'Notificare/NotificareAssetsKit'
pod 'Notificare/NotificareGeoKit'
pod 'Notificare/NotificareInAppMessagingKit'
pod 'Notificare/NotificareInboxKit'
pod 'Notificare/NotificareLoyaltyKit'
pod 'Notificare/NotificarePushKit'
pod 'Notificare/NotificarePushUIKit'
pod 'Notificare/NotificareScannablesKit'
pod 'Notificare/NotificareUserInboxKit'
- Lancez la commande suivante :
pod install
- Désormais, utilisez le fichier
.xcworkspace
pour ouvrir votre projet dans Xcode au lieu du fichier.xcodeproj
.
Fichier de configuration
Afin de connecter votre application à Notificare, vous devez télécharger le fichier de configuration depuis la TransferBox de votre licence (où il a été téléchargé par l'équipe Actito) et le placer dans le dossier racine de votre projet sous le nom NotificareServices.plist
.
Pour votre information, voici à quoi devrait ressembler ce fichier :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>APPLICATION_ID</key>
<string>{{ YOUR APPLICATION ID }}</string>
<key>APPLICATION_KEY</key>
<string>{{ YOUR APPLICATION KEY }}</string>
<key>APPLICATION_SECRET</key>
<string>{{ YOUR APPLICATION SECRET }}</string>
</dict>
</plist>
Par défaut, nous créerons deux applications différentes dans Notificare en utilisant des environnements séparés pour le développement et la production. Pour chaque application, vous disposerez d'un jeu de clés différent, ce qui entraînera deux fichiers de configuration différents. Nous vous recommandons d'exploiter les phases de construction de Xcode pour gérer quel fichier sera intégré dans l'application. Vous en apprendrez plus à ce sujet dans la section Personnalisations de la documentation Notificare.
Le délégué Notificare
Bien qu'il s'agisse d'une étape facultative, en configurant votre propre délégué, vous pouvez écouter les événements ready
et device_registered
. Vous pouvez en profiter pour effectuer des étapes supplémentaires lorsque Notificare est prêt ou lorsque l'appareil est mis à jour.
extension AppDelegate: NotificareDelegate {
func notificare(_ notificare: Notificare, onReady application: NotificareApplication) {
// At this point you have been assigned a temporary device identifier
// All services subscribed can be used
}
func notificare(_ notificare: Notificare, didRegisterDevice device: NotificareDevice) {
// At this point you know a device is registered with the Notificare API.
// This method will be called once when the device is registered.
}
}
Pour informer Notificare de votre délégué, vous pouvez exécuter l'instruction suivante :
Notificare.shared.delegate = self // where self complies with `NotificareDelegate`
Lancer Notificare
Lancer Notificare est aussi simple que d'appeler Notificare.shared.launch()
. Cependant, avant de vous lancer, vous souhaiterez peut-être envisager de personnaliser certaines propriétés.
Si vous avez créé un délégué personnalisé, vous devez également définir la propriété Notificare.shared.delegate
pour indiquer à Notificare quelle classe gérera les événements.
Vous devez lancer Notificare lorsque l'application iOS est lancée. Un petit exemple de code peut être trouvé ci-dessous.
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_: UIApplication, didFinishLaunchingWithOptions _: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
// In case you want to setup your delegate.
Notificare.shared.delegate = self
// Launch Notificare! 🚀
Notificare.shared.launch { result in
switch result {
case .success:
// Notificare is now ready.
break
case let .failure(error):
// Something went wrong ...
break
}
}
}
}
Vous pouvez retarder le lancement de Notificare pour la première fois. Sinon, assurez-vous de bien launch()
pendant la phase d'initialisation de l'application pour éviter de manquer des mises à jour importantes lorsque l'application est créée en arrière-plan.
Bien que launch()
soit une fonction de suspension (avec une alternative de rappel), vous pouvez également utiliser la méthode onReady()
de NotificareDelegate
comme indiqué ci-dessous lorsque vous souhaitez contrôler l'état de dépendances dans le flux d’initialisation de votre application.
extension AppDelegate: NotificareDelegate {
func notificare(_: Notificare, onReady application: NotificareApplication) {
// Notificare is now safe to use.
}
}
Annuler le lancement de Notificare
Il est possible de supprimer complètement toutes les données d'un appareil, aussi bien localement dans votre application qu'à distance sur nos serveurs. Vous souhaitez éviter de le faire, mais dans les cas où l'utilisateur demande la suppression de son compte, vous pouvez utiliser la méthode suivante :
Notificare.shared.unlaunch { result in
}
Après avoir invoqué cette fonction, toutes les données de l'appareil seront détruites et ne pourront plus être annulées. Une fois le processus terminé, la méthode onUnlaunched
de votre NotificareDelegate
sera exécutée.
extension AppDelegate: NotificareDelegate {
func notificareDidUnlaunch(_: Notificare) {
// All device data was deleted.
// Notificare cannot be used until it's launched again.
}
}
À ce stade, l'appel de toute autre méthode dans Notificare échouera, et la seule façon de recommencer à utiliser le SDK est d'invoquer son homologue, la méthode launch
.
Utilisation de SwiftUI
Le nouveau cycle de vie des applications SwiftUI constituait une bonne amélioration par rapport au processus d'initialisation traditionnel, le rendant déclaratif. Tout comme SwiftUI est censé être.
Cependant, ce changement a supprimé le AppDelegate
par défaut, ce qui signifie que vous devez en fournir un vous-même. Une fois que vous avez créé le fichier AppDelegate
, vous devez utiliser le wrapper de propriété UIApplicationDelegateAdaptor
pour l'injecter.
@main
struct SampleApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
De plus, notre SDK utilise le AppDelegate
pour traiter automatiquement les jetons APNS et les notifications. Étant donné que le SwiftUI.AppDelegate
interne interrompt notre processus de swizzling, vous devez désactiver le mécanisme de swizzling et transmettre les méthodes pertinentes à notre SDK. Consultez la section personnalisations pour plus d'informations.