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
.
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.
Certifique-se de ter um projeto com pelo menos os seguintes destinos:
Para obter mais informações sobre como desenvolver aplicativos WatchKit, consulte A arquitetura do aplicativo Watch.
Conclua as seguintes etapas no projeto Xcode:
Arraste a pasta AdobeMobileLibrary
no seu projeto.
Certifique-se de que o arquivo ADBMobileConfig.json
é um membro do destino do seu aplicativo contêiner.
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
Na classe que implementa o protocolo UIApplicationDelegate
, adicione o protocolo WCSessionDelegate
.
#import <WatchConnectivity/WatchConnectivity.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate, WCSessionDelegate>
No arquivo de implementação da sua classe de delegado do aplicativo, importe o AdobeMobileLibrary
.
#import “ADBMobile.h”
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];
}
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
}
}
Certifique-se de que o arquivo ADBMobileConfig.json
é um membro do destino da sua extensão.
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
Na classe que implementa o protocolo WKExtensionDelegate
, importe WatchConnectivity
e adicione o protocolo WCSessionDelegate
.
#import <WatchConnectivity/WatchConnectivity.h>
@interface ExtensionDelegate : NSObject <WKExtensionDelegate, WCSessionDelegate>
No arquivo de implementação da sua classe de delegado da extensão, importe o AdobeMobileLibrary
.
#import “ADBMobile.h”
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];
}
Em applicationDidFinishLaunching
do seu delegado de extensão, inicialize o aplicativo Watch para o SDK.
[ADBMobile initializeWatch];
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
}
}
Lembre-se das seguintes informações:
a.RunMode
será definido para Extension
.a.AppID
.