Show Menu
ARGOMENTI×

Implementazione Apple Watch con WatchOS 2

A partire da WatchOS 2, le estensioni WatchKit possono essere eseguite sui dispositivi Apple Watch. Le applicazioni che vengono eseguite in questo ambiente richiedono la condivisione di dati tra il framework WatchConnectivity e l'app iOS che le contiene.
A partire dalla versione v4.6.0 di AdobeMobileLibrary , WatchConnectivity è supportato.

Nuova versione dell'SDK per dispositivi mobili di Adobe Experience Platform

Stai cercando informazioni e documentazione sull’SDK per dispositivi mobili di Adobe Experience Platform? Fai clic qui per la documentazione più recente.
A settembre 2018 è stata rilasciata una nuova versione principale dell'SDK. Questi nuovi SDK per dispositivi mobili di Adobe Experience Platform sono configurabili tramite Experience Platform Launch .

Guida introduttiva

Assicurati di avere un progetto con almeno le seguenti destinazioni:
  • L'app contenitore
  • L'app WatchKit
  • L'estensione WatchKit
Per ulteriori informazioni sullo sviluppo di app WatchKit, vedi The Watch App Architecture .

Configurare l'app contenitore

Completa i seguenti passaggi nel progetto Xcode:
  1. Trascina nel progetto la cartella AdobeMobileLibrary .
  2. Assicurati che il file ADBMobileConfig.json sia un membro della destinazione dell'app contenitore.
  3. Nella scheda Fasi build della destinazione dell'app contenitore, espandi la sezione Collega binario a librerie e aggiungi le seguenti librerie:
    • AdobeMobileLibrary.a
    • libsqlite3.tbd
    • SystemConfiguration.framework
  4. Nella classe che implementa il protocollo UIApplicationDelegate , aggiungi il protocollo WCSessionDelegate .
    #import <WatchConnectivity/WatchConnectivity.h> 
    @interface AppDelegate : UIResponder <UIApplicationDelegate, WCSessionDelegate>
    
    
  5. Nel file di implementazione della classe app delegate, importa AdobeMobileLibrary .
    #import “ADBMobile.h”
    
    
  6. Prima di effettuare una chiamata alla libreria ADBMobile , in application:didFinishLaunchingWithOptions: dell'app delegate, configura la WCSession .
    // check for session availability 
    if ([WCSession isSupported]) { 
        WCSession *session = [WCSession defaultSession]; 
        session.delegate = self; 
        [session activateSession]; 
    }
    
    
  7. Nell'app delegate, implementa i metodi session:didReceiveMessage: e session:didReceiveUserInfo: .
    syncSettings: viene invocato nella libreria ADBMobile , che restituisce un valore booleano che indica se il dizionario deve essere utilizzato dalla libreria ADBMobile . Se restituisce No , il messaggio non era stato avviato dall'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 
        } 
    } 
    
    

Configurare l’estensione WatchKit

  1. Assicurati che il file ADBMobileConfig.json sia un membro della destinazione dell'estensione WatchKit.
  2. Nella scheda Fasi build della destinazione dell'estensione WatchKit, espandi la sezione Collega binario a librerie e aggiungi le seguenti librerie:
    • AdobeMobileLibrary_Watch.a
    • libsqlite3.tbd
  3. Nella classe che implementa il protocollo WKExtensionDelegate , importa WatchConnectivity e aggiungi il protocollo WCSessionDelegate .
    #import <WatchConnectivity/WatchConnectivity.h> 
    @interface ExtensionDelegate : NSObject <WKExtensionDelegate, WCSessionDelegate>
    
    
  4. Nel file di implementazione della classe dell'extension delegate, importa AdobeMobileLibrary .
    #import “ADBMobile.h”
    
    
  5. In applicationDidFinishLaunching dell'extension delegate, configura WCSession prima di effettuare chiamate alla libreria ADBMobile .
    // check for session availability 
    if ([WCSession isSupported]) { 
        WCSession *session = [WCSession defaultSession]; 
        session.delegate = self; 
        [session activateSession]; 
    }
    
    
  6. In applicationDidFinishLaunching dell'extension delegate, inizializza l'app Watch per l'SDK.
    [ADBMobile initializeWatch];
    
    
  7. Nell'estensione delegate, implementa i metodi session:didReceiveMessage: e session:didReceiveUserInfo: .
    syncSettings: viene invocato nella libreria ADBMobile , che restituisce un valore booleano che indica se il dizionario deve essere utilizzato dalla libreria ADBMobile . Se restituisce NO , il messaggio non era stato avviato dall'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 
        } 
    } 
    
    

Informazioni aggiuntive

Considerazioni da ricordare:
  • Per le app WatchKit, a.RunMode sarà impostato su Extension .
  • Poiché le app WatchKit vengono eseguite sull'orologio, le app segnalano correttamente il loro nome in a.AppID .
  • Sulle app WatchOS2 non viene attivata alcuna chiamata "lifecycle" (ciclo di vita).