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.

DICA

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 obter 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

IMPORTANTE

Certifique-se de ter um projeto com pelo menos os seguintes destinos:

  • O aplicativo contendo
  • O aplicativo WatchKit
  • A extensão WatchKit

Para obter mais informações sobre como desenvolver 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.

Nesta página

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free