有没有办法在 SwiftUI 中读取 Apple Watch Ultra 的操作按钮?
您可以像下面的示例一样阅读数字表冠,但我没有找到任何类似的操作按钮?
struct DigitalCrown: View {
@State private var crownValue = 0.0
var body: some View {
Text("Received Value:\(crownValue, specifier: "%.1f")")
.focusable()
.digitalCrownRotation($crownValue)
}
}
我还没有找到如何指定一个动作,但有一个 UI 测试。
XCUIDevice.current.press(.action)
https://developer.apple.com/documentation/xcode-release-notes/xcode-14-release-notes
从措辞来看,我猜这可能是一个“捷径”
Apple Watch Ultra 的操作按钮由新的 App Intents API 提供支持。您将能够构建自己的应用程序来与其集成,例如使用按钮记录目标的曲棍球应用程序。对于用户来说,该按钮可以启动任何您想要的快捷方式。
要使用此功能,请创建一个符合 StarWorkoutIntent 协议的 Intent:https://developer.apple.com/documentation/appintents/startworkoutintent
这些 API 适用于锻炼应用程序,因此要将这个新按钮置于控制您的应用程序的模式下,您至少需要从 StartWorkoutIntent 开始。
完成此操作后,您可以使用 actionButtonIntent 创建 AppIntent 结果,以将按钮下一步要做的事情设置为任何其他意图。或者,如果您要根据应用程序 UI 中发生的情况更改按钮的行为,则可以使用捐赠来实现此目的。