Show Menu
主题×

使用 WatchOS 2 实施 Apple Watch

从 WatchOS 2 开始,WatchKit 扩展可在 Apple Watch 上运行。在此环境中运行的应用程序需要 WatchConnectivity 框架才能与它们的 iOS 容器应用程序共享数据。
AdobeMobileLibrary v4.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 应用程序的更多信息,请参阅 The Watch App Architecture (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. 在对 ADBMobile 库进行任何调用之前,在扩展委托的 applicationDidFinishLaunching 中配置 WCSession
    // 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 应用程序中不会触发生命周期调用。