À 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.
Vous recherchez des informations et de la documentation concernant le SDK d’Adobe Experience Platform Mobile ? Cliquez ici pour consulter la 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.
Vérifiez que l’un de vos projets comprend au minimum les cibles suivantes :
Pour plus d’informations sur le développement d’applications WatchKit, voir L’architecture des applications Watch.
Procédez comme suit dans votre projet Xcode :
Glissez-déposez le dossier AdobeMobileLibrary
dans votre projet.
Assurez-vous que le fichier ADBMobileConfig.json
est membre de la cible de l’application contenante.
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
Dans votre classe de mise en œuvre du protocole UIApplicationDelegate
, ajoutez le protocole WCSessionDelegate
.
#import <WatchConnectivity/WatchConnectivity.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate, WCSessionDelegate>
Importez AdobeMobileLibrary
dans le fichier d’implémentation de votre classe de délégation d’application.
#import “ADBMobile.h”
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];
}
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
}
}
Vérifiez que le fichier ADBMobileConfig.json
est un membre de la cible de votre extension WatchKit.
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
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>
Importez AdobeMobileLibrary
dans le fichier d’implémentation de votre classe de délégation d’extension.
#import “ADBMobile.h”
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];
}
Dans l’élément applicationDidFinishLaunching
du délégué de votre extension, initialisez l’application Watch pour le SDK.
[ADBMobile initializeWatch];
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
}
}
À noter :
a.RunMode
est défini sur Extension
.a.AppID
.