Show Menu
THEMEN×

Apple Watch-Implementierungen mit WatchOS 2

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.

Neue Version des Adobe Experience Platform Mobile SDK

Sind Sie auf der Suche nach Informationen und Dokumentation zu Mobile SDK für die Adobe Experience Platform? Klicken Sie für die neueste Dokumentation hier .
Seit September 2018 steht eine neue, bessere Version des SDK zur Verfügung. Diese neuen Adobe Experience Platform Mobile SDK können über Experience Platform Launch konfiguriert werden.

Erste Schritte

Stellen Sie sicher, dass Sie ein Projekt mit mindestens den folgenden Zielen haben:
  • die übergeordnete App.
  • die WatchKit-App.
  • die WatchKit-Erweiterung.
Weitere Informationen zum Entwickeln von WatchKit-Apps finden Sie im Artikel zur Watch-App-Architektur .

Übergeordnete Apps konfigurieren

Führen Sie die folgenden Schritte in Ihrem Xcode-Projekt aus:
  1. Ziehen Sie den Ordner AdobeMobileLibrary in Ihr Projekt.
  2. Stellen Sie sicher, dass die ADBMobileConfig.json -Datei ein Mitglied des Ziels Ihrer übergeordneten App ist.
  3. 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
  4. Fügen Sie in Ihrer Klasse, die das UIApplicationDelegate -Protokoll implementiert, das WCSessionDelegate -Protokoll hinzu.
    #import <WatchConnectivity/WatchConnectivity.h> 
    @interface AppDelegate : UIResponder <UIApplicationDelegate, WCSessionDelegate>
    
    
  5. Importieren Sie in der Implementierungsdatei Ihrer App-Delegatklasse AdobeMobileLibrary .
    #import “ADBMobile.h”
    
    
  6. 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]; 
    }
    
    
  7. 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 
        } 
    } 
    
    

WatchKit-Erweiterung konfigurieren

  1. Stellen Sie sicher, dass die ADBMobileConfig.json -Datei ein Mitglied des Ziels Ihrer WatchKit-Erweiterung ist.
  2. 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
  3. 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>
    
    
  4. Importieren Sie in der Implementierungsdatei Ihrer Erweiterungsdelegatklasse AdobeMobileLibrary .
    #import “ADBMobile.h”
    
    
  5. 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]; 
    }
    
    
  6. Initialisieren Sie in applicationDidFinishLaunching Ihres Erweiterungsdelegats die Watch-App für das SDK.
    [ADBMobile initializeWatch];
    
    
  7. 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 
        } 
    } 
    
    

Zusätzliche Informationen

Beachten Sie die folgenden Informationen:
  • Bei WatchKit-Apps wird a.RunMode auf Extension festgelegt.
  • Da WatchKit-Apps auf der Uhr ausgeführt werden, melden die Apps ihre Namen richtig in a.AppID .
  • Für WatchOS2-Apps wird kein Lebenszyklusaufruf ausgelöst.