Show Menu
TEMAS×

Implementación de Apple Watch con WatchOS 2

A partir de WatchOS 2, las extensiones WatchKit se pueden ejecutar en un Apple Watch. Las aplicaciones que se ejecutan en este entorno requieren que el marco WatchConnectivity comparta datos con la aplicación iOS contenedora.
A partir de AdobeMobileLibrary 4.6.0, se admite WatchConnectivity .

Nueva versión del SDK móvil de Adobe Experience Platform

¿Busca información y documentación relacionada con el SDK móvil de Adobe Experience Platform? Haga clic aquí para consultar los documentos más recientes.
En septiembre de 2018, publicamos una nueva versión principal del SDK. Estos nuevos SDK móviles de la Adobe Experience Platform se pueden configurar a través de Experience Platform Launch .

Primeros pasos

Asegúrese de que tiene un proyecto con al menos los siguientes destinatarios:
  • La aplicación contenedora
  • La aplicación WatchKit
  • La extensión WatchKit
Para obtener más información acerca del desarrollo de aplicaciones WatchKit, consulte La arquitectura de la aplicación Watch .

Configurar la aplicación contenedora

Complete los siguientes pasos en su proyecto Xcode:
  1. Arrastre la carpeta AdobeMobileLibrary a su proyecto.
  2. Asegúrese de que el archivo ADBMobileConfig.json pertenece al destino de la aplicación contendora.
  3. En la ficha Fases de compilación del destino de su aplicación contenedora, expanda la sección Vincular binario con bibliotecas y agregue las bibliotecas siguientes:
    • AdobeMobileLibrary.a
    • libsqlite3.tbd
    • SystemConfiguration.framework
  4. En la clase que implementa el protocolo UIApplicationDelegate , agregue el protocolo WCSessionDelegate .
    #import <WatchConnectivity/WatchConnectivity.h> 
    @interface AppDelegate : UIResponder <UIApplicationDelegate, WCSessionDelegate>
    
    
  5. En el archivo de implementación de la clase delegada de la aplicación, importe AdobeMobileLibrary .
    #import “ADBMobile.h”
    
    
  6. Antes de realizar una llamada a la biblioteca ADBMobile , configure application:didFinishLaunchingWithOptions: en el método WCSession : del delegado de la aplicación.
    // check for session availability 
    if ([WCSession isSupported]) { 
        WCSession *session = [WCSession defaultSession]; 
        session.delegate = self; 
        [session activateSession]; 
    }
    
    
  7. En el delegado de la aplicación, implemente los métodos session:didReceiveMessage: y session:didReceiveUserInfo: .
    syncSettings: recibe una llamada en la biblioteca ADBMobile y devuelve un valor booleano que indica si el diccionario estaba destinado al consumo por parte de la biblioteca ADBMobile . Si devuelve el valor No , el mensaje no se inició desde el SDK de 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 
        } 
    } 
    
    

Configuración de la extensión WatchKit

  1. Compruebe que el archivo ADBMobileConfig.json pertenece al destino de la extensión WatchKit.
  2. En la ficha Fases de compilación del destino de su extensión WatchKit, expanda la sección Vincular binario con bibliotecas y agregue las bibliotecas siguientes:
    • AdobeMobileLibrary_Watch.a
    • libsqlite3.tbd
  3. En la clase que implementa el protocolo WKExtensionDelegate , importe WatchConnectivity y agregue el protocolo WCSessionDelegate .
    #import <WatchConnectivity/WatchConnectivity.h> 
    @interface ExtensionDelegate : NSObject <WKExtensionDelegate, WCSessionDelegate>
    
    
  4. En el archivo de implementación de la clase delegada de la extensión, importe AdobeMobileLibrary .
    #import “ADBMobile.h”
    
    
  5. En el método applicationDidFinishLaunching del delegado de la extensión, configure WCSession antes de realizar ninguna llamada a la biblioteca ADBMobile .
    // check for session availability 
    if ([WCSession isSupported]) { 
        WCSession *session = [WCSession defaultSession]; 
        session.delegate = self; 
        [session activateSession]; 
    }
    
    
  6. En el método applicationDidFinishLaunching del delegado de la extensión, inicialice la aplicación del reloj para el SDK.
    [ADBMobile initializeWatch];
    
    
  7. En el delegado de la extensión, implemente los métodos session:didReceiveMessage: y session:didReceiveUserInfo: .
    syncSettings: recibe una llamada en la biblioteca ADBMobile y devuelve un valor booleano que indica si el diccionario estaba destinado al consumo por parte de la biblioteca ADBMobile . Si devuelve el valor NO , el mensaje no se inició desde el SDK de 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 
        } 
    } 
    
    

Información adicional

Recuerde la información siguiente:
  • Para aplicaciones WatchKit, a.RunMode se establece en Extension .
  • Como las aplicaciones WatchKit se ejecutan en el reloj, comunican correctamente sus nombres en a.AppID .
  • En las aplicaciones WatchOS2 no se activa ninguna llamada de ciclo vital.