Show Menu
主題×

使用 WatchOS 2 進行 Apple Watch 實施

從 WatchOS 2 開始,您的 WatchKit 延伸功能可在 Apple Watch 上執行。在此環境中執行的應用程式皆須使用 WatchConnectivity 架構,以與其容納 iOS 應用程式共用資料。
AdobeMobileLibrary 4.6.0 版開始,即支援 WatchConnectivity

新版 Adobe Experience Platform Mobile SDK

在尋找 Adobe Experience Platform Mobile SDK 的相關資訊和文件嗎? 按一下 這裡 以取得最新文件。
我們於 2018 年 9 月發行了全新的 SDK 主要版本。這些新的 Adobe Experience Platform Mobile SDK 可透過 Experience Platform Launch 設定。

入門

確保您擁有至少具備以下目標的專案:
  • 容納應用程式
  • WatchKit 應用程式
  • WatchKit 延伸功能
如需有關開發 WatchKit 應用程式的詳細資訊,請參閱 Watch 應用程式架構

設定容納應用程式

在您的 Xcode 專案中完成以下步驟:
  1. AdobeMobileLibrary 資料夾拖曳到專案中。
  2. 確認 ADBMobileConfig.json 檔案為容納應用程式目標的成員。
  3. 在容納應用程式目標的​ 「建立階段」 ​標籤中,展開​**「連結二進位檔與資料庫」]區段,然後新增下列資料庫:[**
    • AdobeMobileLibrary.a
    • libsqlite3.tbd
    • SystemConfiguration.framework
  4. 在實施 UIApplicationDelegate 通訊協定的類別中,新增 WCSessionDelegate 通訊協定。
    #import <WatchConnectivity/WatchConnectivity.h> 
    @interface AppDelegate : UIResponder <UIApplicationDelegate, WCSessionDelegate>
    
    
  5. 在應用程式委派類別的實施檔案中,匯入 AdobeMobileLibrary
    #import “ADBMobile.h”
    
    
  6. 呼叫 ADBMobile 資料庫之前,請在應用程式委派的 application:didFinishLaunchingWithOptions: 中,設定您的 WCSession
    // check for session availability 
    if ([WCSession isSupported]) { 
        WCSession *session = [WCSession defaultSession]; 
        session.delegate = self; 
        [session activateSession]; 
    }
    
    
  7. 在您的應用程式委派中,實施 session:didReceiveMessage: session:didReceiveUserInfo: 方法。
    系統會在 ADBMobile 資料庫中呼叫 syncSettings: ,其會傳回布林值指示是否會由 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 
        } 
    } 
    
    

設定 WatchKit 延伸功能

  1. 確認 ADBMobileConfig.json 檔案為 WatchKit 延伸功能目標的成員。
  2. 在 WatchKit 延伸功能目標的​ 「建立階段」 ​標籤中,展開​**「連結二進位檔與資料庫」]區段,然後新增下列資料庫:[**
    • AdobeMobileLibrary_Watch.a
    • libsqlite3.tbd
  3. 在實施 WKExtensionDelegate 通訊協定的類別中,匯入 WatchConnectivity 並新增 WCSessionDelegate 通訊協定。
    #import <WatchConnectivity/WatchConnectivity.h> 
    @interface ExtensionDelegate : NSObject <WKExtensionDelegate, WCSessionDelegate>
    
    
  4. 在延伸功能委派類別的實施檔案中,匯入 AdobeMobileLibrary
    #import “ADBMobile.h”
    
    
  5. 在延伸功能委派的 applicationDidFinishLaunching 中,設定您的 WCSession ,然後再對 ADBMobile 資料庫進行任何呼叫。
    // check for session availability 
    if ([WCSession isSupported]) { 
        WCSession *session = [WCSession defaultSession]; 
        session.delegate = self; 
        [session activateSession]; 
    }
    
    
  6. 在延伸功能委派的 applicationDidFinishLaunching 中,初始化 SDK 的 Watch 應用程式。
    [ADBMobile initializeWatch];
    
    
  7. 在您的延伸功能委派中,實施 session:didReceiveMessage: session:didReceiveUserInfo: 方法。
    系統會在 ADBMobile 資料庫中呼叫 syncSettings: ,其會傳回布林值指示是否會由 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 
        } 
    } 
    
    

其他資訊

請記住以下資訊:
  • 若為 WatchKit 應用程式, a.RunMode 則會設為 Extension
  • 由於 WatchKit 應用程式會在 Watch 上執行,因此應用程式會在 a.AppID 中正確回報其名稱。
  • 在 WatchOS2 應用程式中不會觸發任何生命週期呼叫。