WatchOS 2 以降、WatchKit エクステンションを Apple Watch で実行できます。この環境で動作するアプリケーションが iOS 本体アプリとデータを共有するには、WatchConnectivity
フレームワークが必要です。
AdobeMobileLibrary
v4.6.0 以降、WatchConnectivity
がサポートされます。
Adobe Experience Platform Mobile SDK に関する情報やドキュメントをお探しの場合こちらをクリックし、最新のドキュメントを参照してください。
2018 年 9 月に、SDK の新しいメジャーバージョンをリリースしました。これらの新しい Adobe Experience Platform Mobile SDK は、Experience Platform Launch から設定できます。
少なくとも以下のターゲットを持つプロジェクトがあることを確認します。
WatchKit アプリの開発について詳しくは、「Watch App アーキテクチャ」を参照してください。
次の手順を Xcode プロジェクトで実行します。
AdobeMobileLibrary
フォルダーをプロジェクトにドラッグします。
ADBMobileConfig.json
ファイルが本体アプリのターゲットのメンバーであることを確認します。
本体アプリのターゲットの「Build Phases」タブで、「Link Binary with Libraries」セクションを展開して、以下のライブラリを追加します。
AdobeMobileLibrary.a
libsqlite3.tbd
SystemConfiguration.framework
UIApplicationDelegate
プロトコルを実装するクラスで、WCSessionDelegate
プロトコルを追加します。
#import <WatchConnectivity/WatchConnectivity.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate, WCSessionDelegate>
AppDelegate クラスの実装ファイル内で、AdobeMobileLibrary
をインポートします。
#import "ADBMobile.h"
ADBMobile
ライブラリを呼び出す前に、AppDelegate の application:didFinishLaunchingWithOptions:
で、WCSession
を設定します。
// check for session availability
if ([WCSession isSupported]) {
WCSession *session = [WCSession defaultSession];
session.delegate = self;
[session activateSession];
}
AppDelegate で、session:didReceiveMessage:
と session:didReceiveUserInfo:
メソッドを実装します。
syncSettings:
は ADBMobile
ライブラリ内で呼び出され、ADBMobile
ライブラリが使用する目的で辞書が作成されたかどうかを示すブール値を返します。No
を返す場合、メッセージは Adobe SDK から開始されたものではありません。
- (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
}
}
ADBMobileConfig.json
ファイルが WatchKit エクステンションのターゲットのメンバーであることを確認します。
WatchKit エクステンションのターゲットの「Build Phases」タブで、「Link Binary with Libraries」セクションを展開して、以下のライブラリを追加します。
AdobeMobileLibrary_Watch.a
libsqlite3.tbd
WKExtensionDelegate
プロトコルを実装するクラスで、WatchConnectivity
を読み込み、WCSessionDelegate
プロトコルを追加します。
#import <WatchConnectivity/WatchConnectivity.h>
@interface ExtensionDelegate : NSObject <WKExtensionDelegate, WCSessionDelegate>
ExtensionDelegate クラスの実装ファイル内で、AdobeMobileLibrary
を読み込みます。
#import "ADBMobile.h"
applicationDidFinishLaunching
ライブラリへのコールをおこなう前に、ExtensionDelegate の WCSession
で、ADBMobile
を設定します。
// check for session availability
if ([WCSession isSupported]) {
WCSession *session = [WCSession defaultSession];
session.delegate = self;
[session activateSession];
}
ExtensionDelegate の applicationDidFinishLaunching
で、SDK 用に Watch App を初期化します。
[ADBMobile initializeWatch];
ExtensionDelegate で、session:didReceiveMessage:
メソッドと session:didReceiveUserInfo:
メソッドを実装します。
syncSettings:
は ADBMobile
ライブラリ内で呼び出され、ADBMobile
ライブラリが使用する目的で辞書が作成されたかどうかを示すブール値を返します。NO
を返す場合、メッセージは Adobe SDK から開始されたものではありません。
- (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
}
}
次の情報に留意してください。
a.RunMode
は Extension
に設定されます。a.AppID
に名前が正しくレポートされます。