Show Menu
SUJETS×

Mise en œuvre de l’Apple Watch avec WatchOS 2

À partir de la version WatchOS 2, vos extensions WatchKit peuvent s’exécuter sur une Apple Watch. Les applications qui s’exécutent dans cet environnement requièrent la structure WatchConnectivity pour partager des données avec leur application iOS contenante.
A partir de AdobeMobileLibrary v4.6.0, WatchConnectivity est pris en charge.

Nouvelle mise à jour du SDK Adobe Experience Platform Mobile

Vous recherchez des informations et de la documentation à propos du SDK Adobe Experience Platform Mobile ? Cliquez ici pour consulter notre documentation la plus récente.
Nous avons lancé, en septembre 2018, une version majeure du SDK. Ces nouveaux SDK Adobe Experience Platform Mobile peuvent être configurés via Experience Platform Launch .

Prise en main

Vérifiez que l’un de vos projets comprend au minimum les cibles suivantes :
  • L’application contenante
  • L’application WatchKit
  • L’extension WatchKit
Pour en savoir plus sur le développement d’applications WatchKit, consultez Architecture des applications pour montres .

Configuration de l’application conteneur

Procédez comme suit dans votre projet Xcode :
  1. Glissez-déposez le dossier AdobeMobileLibrary dans votre projet.
  2. Assurez-vous que le fichier ADBMobileConfig.json est membre de la cible de l’application contenante.
  3. Dans l’onglet Créer les phases de la cible de votre application contenante, développez la section Lier le fichier binaire avec les bibliothèques , puis ajoutez les bibliothèques suivantes :
    • AdobeMobileLibrary.a
    • libsqlite3.tbd
    • SystemConfiguration.framework
  4. Dans votre classe de mise en œuvre du protocole UIApplicationDelegate , ajoutez le protocole WCSessionDelegate .
    #import <WatchConnectivity/WatchConnectivity.h> 
    @interface AppDelegate : UIResponder <UIApplicationDelegate, WCSessionDelegate>
    
    
  5. Importez AdobeMobileLibrary dans le fichier d’implémentation de votre classe de délégation d’application.
    #import “ADBMobile.h”
    
    
  6. Avant de lancer un appel vers la bibliothèque ADBMobile , dans application:didFinishLaunchingWithOptions: du délégué de votre application, configurez votre WCSession .
    // check for session availability 
    if ([WCSession isSupported]) { 
        WCSession *session = [WCSession defaultSession]; 
        session.delegate = self; 
        [session activateSession]; 
    }
    
    
  7. Mettez les méthodes session:didReceiveMessage: et session:didReceiveUserInfo: en œuvre dans le délégué de votre application.
    syncSettings: est appelé dans la bibliothèque ADBMobile , laquelle renvoie un booléen indiquant si le dictionnaire devait être utilisé par la bibliothèque ADBMobile . Si No (Non) est renvoyé, le message n’a pas été lancé à partir du SDK Adobe.
    - (void) session:(WCSession *)session didReceiveMessage:(NSDictionary<NSString *,id> *)message { 
        // pass message to ADBMobile 
        if (![ADBMobile syncSettings:message]) { 
            // handle your own custom messages 
        } 
    } 
    - (void) session:(WCSession *)session didReceiveUserInfo:(NSDictionary<NSString *,id> *)userInfo { 
        // pass userInfo to ADBMobile 
        if (![ADBMobile syncSettings:userInfo]) { 
            // handle your own custom messages 
        } 
    } 
    
    

Configuration de l’extension WatchKit

  1. Vérifiez que le fichier ADBMobileConfig.json est un membre de la cible de votre extension WatchKit.
  2. Dans l’onglet Créer les phases de la cible de votre extension WatchKit, développez la section Lier le fichier binaire avec les bibliothèques , puis ajoutez les bibliothèques suivantes :
    • AdobeMobileLibrary_Watch.a
    • libsqlite3.tbd
  3. Dans votre classe de mise en œuvre du protocole WKExtensionDelegate , importez WatchConnectivity et ajoutez le protocole WCSessionDelegate .
    #import <WatchConnectivity/WatchConnectivity.h> 
    @interface ExtensionDelegate : NSObject <WKExtensionDelegate, WCSessionDelegate>
    
    
  4. Importez AdobeMobileLibrary dans le fichier d’implémentation de votre classe de délégation d’extension.
    #import “ADBMobile.h”
    
    
  5. Dans l’élément applicationDidFinishLaunching du délégué de votre extension, configurez WCSession avant de lancer des appels vers la bibliothèque ADBMobile .
    // check for session availability 
    if ([WCSession isSupported]) { 
        WCSession *session = [WCSession defaultSession]; 
        session.delegate = self; 
        [session activateSession]; 
    }
    
    
  6. Dans l’élément applicationDidFinishLaunching du délégué de votre extension, initialisez l’application Watch pour le SDK.
    [ADBMobile initializeWatch];
    
    
  7. Mettez les méthodes session:didReceiveMessage: et session:didReceiveUserInfo: en œuvre dans le délégué de votre extension.
    syncSettings: est appelé dans la bibliothèque ADBMobile , laquelle renvoie un booléen indiquant si le dictionnaire devait être utilisé par la bibliothèque ADBMobile . Si NO (Non) est renvoyé, le message n’a pas été lancé à partir du SDK Adobe.
    - (void) session:(WCSession *)session didReceiveMessage:(NSDictionary<NSString *,id> *)message { 
        // pass message to ADBMobile 
        if (![ADBMobile syncSettings:message]) { 
            // handle your own custom messages 
        } 
    } 
    - (void) session:(WCSession *)session didReceiveUserInfo:(NSDictionary<NSString *,id> *)userInfo { 
        // pass userInfo to ADBMobile 
        if (![ADBMobile syncSettings:userInfo]) { 
            // handle your own custom messages 
        } 
    } 
    
    

Informations supplémentaires

À noter :
  • Pour les applications WatchKit, a.RunMode est défini sur Extension .
  • Les applications WatchKit fonctionnant sur une montre, leurs noms seront correctement indiqués dans a.AppID .
  • Aucun appel de cycle de vie n’est déclenché sur les applications WatchOS2.