@capacitor/watch
CapacitorLABS - 此项目为实验性项目,不提供官方支持。如有需要请提交问题报告。
Capacitor Watch 插件允许您在网页代码中定义手表界面,并在配对的手表上显示。
目前仅支持 iOS 平台。本指南假设您已在 Capacitor 项目中添加了 iOS 平台。
请注意:所有这些功能仅适用于实际的 Apple Watch。模拟器无法像真实设备那样实现应用与手表间的通信。
安装
步骤 1
将 watch 插件添加到您的 Capacitor 项目,然后打开 Xcode 项目:
npm install @capacitor/watch
npx cap sync
npx cap open ios
步骤 2
添加功能:

添加“后台模式”和“推送通知”功能。然后在后台模式选项中,选择“后台获取”、“远程通知”和“后台处理”。您的应用目标应如下所示:

步骤 3
打开 AppDelegate.swift
,在文件顶部添加 import WatchConnectivity
和 import CapactiorWatch
,并在 application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?)
方法内添加以下代码:
assert(WCSession.isSupported(), "此示例需要 Watch Connectivity 支持!")
WCSession.default.delegate = CapWatchSessionDelegate.shared
WCSession.default.activate()
步骤 4
在 Xcode 中选择 File -> New -> Target,然后选择 watchOS 标签页和 'App':

点击 'Next',然后按如下方式填写选项:

此对话框可能有些令人困惑,关键点在于您的 'Bundle Identifier' 必须是 [您的应用包ID].watchapp
,以便手表与应用配对。您还必须为界面选择 SwiftUI,为语言选择 Swift。项目应为 App
。
步骤 5
我们将添加使 Capacitor Watch 在手表应用中工作的代码。
如果您使用的是 Xcode 15 或更高版本,则需要从 node_modules 中添加 Capacitor Watch Swift 包:
首先转到项目包依赖项

然后选择 'Add Local'

然后导航到 node_modules/@capacitor/watch/CapWatch-Watch-SPM
文件夹,点击 'Add Package'

然后在右侧列中选择您的手表应用作为目标,点击 'Add Package'

完成后,您的包依赖项应如下所示:

对于 Xcode 14,您需要访问 https://github.com/ionic-team/CapacitorWatch/tree/main/packages/iOS-capWatch-watch/Sources/iOS-capWatch-watch 并将所有文件复制到您的手表项目中,确保选中的目标是您的手表应用。应如下所示:

步骤 6
然后打开手表应用的 'Main' 文件,应为 watchappApp.swift
。在 @main
语句上方添加 import WatchConnectivity
和 import iOS_capWatch_watch
。然后将 ContentView()
替换为以下内容:
完成后的文件应如下所示:
import SwiftUI
import WatchConnectivity
import iOS_capWatch_watch
@main
struct watchddgg_Watch_AppApp: App {
var body: some Scene {
WindowGroup {
CapWatchContentView()
.onAppear {
assert(WCSession.isSupported(), "此示例需要 Watch Connectivity 支持!")
WCSession.default.delegate = WatchViewModel.shared
WCSession.default.activate()
}
}
}
}
步骤 7