我想在我的 watchOS 应用程序中使用新的“enableWaterLock”功能,但我无法让它工作。
这是我的代码:
@IBAction func lockScreen() {
if #available(watchOSApplicationExtension 4.0, *) {
WKExtension.shared().enableWaterLock()
}
}
如果满足该功能的所有条件,则从添加到 willActivate() 函数中的菜单按钮调用 lockScreen()。
//Screen Lock
if #available(watchOSApplicationExtension 4.0, *) {
if WKInterfaceDevice.current().waterResistanceRating == .wr50 {
addMenuItem(with:.block, title: "Lock Screen", action: #selector(lockScreen))
}
}
在文档中说:
使用水锁时适用以下规则:
- 您只能在活动锻炼或定位会话期间应用程序在前台运行时启用水锁。
- 应用程序必须在受支持的设备上运行(WKInterfaceDevice 对象的 waterResistanceRating 属性必须设置为 wr50)。
- 水锁保持活动状态,直到用户解锁它。您无法以编程方式解锁手表。
所以我猜我的手表应用程序不是主动锻炼或定位会话。这两者之一需要什么?我的应用程序使用 locationManager,但这显然还不够。