Ab WatchOS 2 können Ihre WatchKit-Erweiterungen auf einer Apple Watch ausgeführt werden. Für Apps, die in dieser Umgebung ausgeführt werden, ist das WatchConnectivity
-Framework erforderlich, damit Daten für die übergeordnete iOS-App freigegeben werden können.
Ab AdobeMobileLibrary
-Version 4.6.0 wird WatchConnectivity
unterstützt.
Sind Sie auf der Suche nach Informationen und Dokumentation zu Mobile SDK für die Adobe Experience Platform? Klicken Sie hier, um unsere aktuelle Dokumentation abzurufen.
Seit September 2018 steht eine neue, bessere Version des SDK zur Verfügung. Diese neuen Adobe Experience Platform Mobile SDKs können über Experience Platform Launch konfiguriert werden.
Stellen Sie sicher, dass Sie ein Projekt mit mindestens den folgenden Zielen haben:
Weitere Informationen zum Entwickeln von WatchKit-Apps finden Sie unter Die Watch-App-Architektur.
Führen Sie die folgenden Schritte in Ihrem Xcode-Projekt aus:
Ziehen Sie den Ordner AdobeMobileLibrary
in Ihr Projekt.
Stellen Sie sicher, dass die ADBMobileConfig.json
-Datei ein Mitglied des Ziels Ihrer übergeordneten App ist.
Blenden Sie auf der Registerkarte Build-Phasen des Ziels Ihrer übergeordneten App den Abschnitt Binärdatei mit Bibliotheken verknüpfen ein und fügen Sie die folgenden Bibliotheken hinzu:
AdobeMobileLibrary.a
libsqlite3.tbd
SystemConfiguration.framework
Fügen Sie in Ihrer Klasse, die das UIApplicationDelegate
-Protokoll implementiert, das WCSessionDelegate
-Protokoll hinzu.
#import <WatchConnectivity/WatchConnectivity.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate, WCSessionDelegate>
Importieren Sie in der Implementierungsdatei Ihrer App-Delegatklasse AdobeMobileLibrary
.
#import "ADBMobile.h"
Bevor Sie einen Aufruf für die ADBMobile
-Bibliothek vornehmen, konfigurieren Sie in application:didFinishLaunchingWithOptions:
Ihres App-Delegats Ihre WCSession
.
// check for session availability
if ([WCSession isSupported]) {
WCSession *session = [WCSession defaultSession];
session.delegate = self;
[session activateSession];
}
Implementieren Sie in Ihrem App-Delegat die Methoden session:didReceiveMessage:
und session:didReceiveUserInfo:
.
syncSettings:
wird in der ADBMobile
-Bibliothek aufgerufen und gibt einen booleschen Wert zurück, der angibt, ob das Wörterbuch für die Verwendung durch die ADBMobile
-Bibliothek vorgesehen war. Wenn No
(NEIN) zurückgegeben wird, wurde die Nachricht nicht vom Adobe-SDK initiiert.
- (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
}
}
Stellen Sie sicher, dass die ADBMobileConfig.json
-Datei ein Mitglied des Ziels Ihrer WatchKit-Erweiterung ist.
Blenden Sie auf der Registerkarte Build-Phasen des Ziels Ihrer WatchKit-Erweiterung den Abschnitt Binärdatei mit Bibliotheken verknüpfen ein und fügen Sie die folgenden Bibliotheken hinzu:
AdobeMobileLibrary_Watch.a
libsqlite3.tbd
Importieren Sie in Ihrer Klasse, die das WKExtensionDelegate
-Protokoll implementiert, WatchConnectivity
und fügen Sie das WCSessionDelegate
-Protokoll hinzu.
#import <WatchConnectivity/WatchConnectivity.h>
@interface ExtensionDelegate : NSObject <WKExtensionDelegate, WCSessionDelegate>
Importieren Sie in der Implementierungsdatei Ihrer Erweiterungsdelegatklasse AdobeMobileLibrary
.
#import "ADBMobile.h"
Konfigurieren Sie in applicationDidFinishLaunching
Ihres Erweiterungsdelegats Ihre WCSession
, bevor Sie Aufrufe für die ADBMobile
-Bibliothek vornehmen.
// check for session availability
if ([WCSession isSupported]) {
WCSession *session = [WCSession defaultSession];
session.delegate = self;
[session activateSession];
}
Initialisieren Sie in applicationDidFinishLaunching
Ihres Erweiterungsdelegats die Watch-App für das SDK.
[ADBMobile initializeWatch];
Implementieren Sie in Ihrem Erweiterungsdelegat die Methoden session:didReceiveMessage:
und session:didReceiveUserInfo:
.
syncSettings:
wird in der ADBMobile
-Bibliothek aufgerufen und gibt einen booleschen Wert zurück, der angibt, ob das Wörterbuch für die Verwendung durch die ADBMobile
-Bibliothek vorgesehen war. Wenn NO
(NEIN) zurückgegeben wird, wurde die Nachricht nicht vom Adobe-SDK initiiert.
- (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
}
}
Beachten Sie die folgenden Informationen:
a.RunMode
auf Extension
festgelegt.a.AppID
.