Show Menu
TÓPICOS×

Implementação do Apple Watch com o WatchOS 2

A partir do WatchOS 2, suas extensões WatchKit serão executadas em um dispositivo Apple Watch. Os aplicativos executados neste ambiente exigem a estrutura WatchConnectivity para compartilhar dados com o aplicativo iOS contentor.
A partir da AdobeMobileLibrary v4.6.0, há suporte para WatchConnectivity .

Nova versão do Adobe Experience Platform Mobile SDK

Procurando informações e documentação relacionadas ao Adobe Experience Platform Mobile SDK? Clique aqui para acessar a documentação mais recente.
Em setembro de 2018, lançamos uma nova versão principal do SDK. Esses novos Adobe Experience Platform Mobile SDKs podem ser configurados por meio do Experience Platform Launch .

Introdução

Certifique-se de ter um projeto com pelo menos os seguintes destinos:
  • O aplicativo contêiner
  • O aplicativo WatchKit
  • A extensão do WatchKit
Para obter mais informações sobre o desenvolvimento de aplicativos WatchKit, consulte A arquitetura do aplicativo Watch .

Configurar o aplicativo contêiner

Conclua as seguintes etapas no projeto Xcode:
  1. Arraste a pasta AdobeMobileLibrary no seu projeto.
  2. Certifique-se de que o arquivo ADBMobileConfig.json é um membro do destino do seu aplicativo contêiner.
  3. Na guia Criar fases do destino do seu aplicativo contêiner, expanda a seção Link binário com bibliotecas e adicione as seguintes bibliotecas:
    • AdobeMobileLibrary.a
    • libsqlite3.tbd
    • SystemConfiguration.framework
  4. Na classe que implementa o protocolo UIApplicationDelegate , adicione o protocolo WCSessionDelegate .
    #import <WatchConnectivity/WatchConnectivity.h> 
    @interface AppDelegate : UIResponder <UIApplicationDelegate, WCSessionDelegate>
    
    
  5. No arquivo de implementação da sua classe de delegado do aplicativo, importe o AdobeMobileLibrary .
    #import “ADBMobile.h”
    
    
  6. Antes de chamar a biblioteca ADBMobile , em application:didFinishLaunchingWithOptions: do delegado do aplicativo, configure WCSession .
    // check for session availability 
    if ([WCSession isSupported]) { 
        WCSession *session = [WCSession defaultSession]; 
        session.delegate = self; 
        [session activateSession]; 
    }
    
    
  7. No delegado do aplicativo, implemente os métodos session:didReceiveMessage: e session:didReceiveUserInfo: .
    syncSettings: é chamado na biblioteca ADBMobile , que retorna um bool indicando se o dicionário deve ser consumido pela biblioteca ADBMobile . Se retornar No (Não), a mensagem não foi iniciada a partir do SDK da 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 
        } 
    } 
    
    

Configurar a extensão WatchKit

  1. Certifique-se de que o arquivo ADBMobileConfig.json é um membro do destino da sua extensão.
  2. Na guia Criar fases do destino da sua extensão do WatchKit, expanda a seção Link binário com bibliotecas e adicione as seguintes bibliotecas:
    • AdobeMobileLibrary_Watch.a
    • libsqlite3.tbd
  3. Na classe que implementa o protocolo WKExtensionDelegate , importe WatchConnectivity e adicione o protocolo WCSessionDelegate .
    #import <WatchConnectivity/WatchConnectivity.h> 
    @interface ExtensionDelegate : NSObject <WKExtensionDelegate, WCSessionDelegate>
    
    
  4. No arquivo de implementação da sua classe de delegado da extensão, importe o AdobeMobileLibrary .
    #import “ADBMobile.h”
    
    
  5. Em applicationDidFinishLaunching do delegado de extensão, configure WCSession antes de chamar a biblioteca ADBMobile .
    // check for session availability 
    if ([WCSession isSupported]) { 
        WCSession *session = [WCSession defaultSession]; 
        session.delegate = self; 
        [session activateSession]; 
    }
    
    
  6. Em applicationDidFinishLaunching do seu delegado de extensão, inicialize o aplicativo Watch para o SDK.
    [ADBMobile initializeWatch];
    
    
  7. No delegado de extensão, implemente os métodos session:didReceiveMessage: e session:didReceiveUserInfo: .
    syncSettings: é chamado na biblioteca ADBMobile , que retorna um bool indicando se o dicionário deve ser consumido pela biblioteca ADBMobile . Se retornar NO (Não), a mensagem não foi iniciada a partir do SDK da 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 
        } 
    } 
    
    

Informações adicionais

Lembre-se das seguintes informações:
  • Para os aplicativos WatchKit, a.RunMode será definido para Extension .
  • Como os aplicativos WatchKit são executados no relógio, os aplicativos registrarão corretamente seus nomes em a.AppID .
  • Nenhuma chamada de ciclo de vida é acionada nos aplicativos WatchOS2.