ios - 尝试让 Apple Watch 计时器应用程序在屏幕关闭时在后台运行

标签 ios swift watchkit apple-watch

我正在尝试为 watch 构建一个计时应用程序,它每分钟振动一次,作为用户跟踪时间的一种方式。我的计时器正常工作并振动,但一旦 watch 上的屏幕熄灭,它就不再振动。一旦我唤醒屏幕,它就会恢复正常。

现在发送振动我正在使用这个:

WKInterfaceDevice.currentDevice().playHaptic(.Stop)

我知道这可能是某种旨在节省电池生命周期的设计实现,但显然我的应用的目的是即使在屏幕关闭时也能跟踪时间。这样的事情可能吗?

最佳答案

要在屏幕关闭后保持 watchOS 应用程序运行,现在可以使用新的 WKExtendedRuntimeSession watchOS 6 中提供的命令。

在您的 WatchKit Extension ExtensionDelegate 文件中,使用以下命令创建一个扩展的运行时 session 。

let session = WKExtendedRuntimeSession()

在此委托(delegate)文件中创建一个 applicationDidBecomeActive() 函数,watchOS 将在您的应用激活时调用该函数。在此函数内使用以下命令启动 ExtendedRuntime Session。

session.delegate = self   // self as session handler
session.start()  // start WKExtendedRuntimeSession

当应用程序处于事件状态时,必须启动扩展的运行时 session 。

请注意,您还需要启用 Background Modes在 WatchKit 扩展目标中。选择 Session Types 之一最适合您正在创建的应用程序类型。

关于ios - 尝试让 Apple Watch 计时器应用程序在屏幕关闭时在后台运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35818671/

相关文章:

arrays - 使用 Swift 将声音文件推送到数组

ios - WatchKit App 作为 iOS 设备的 Controller

ios - 从 SKTransaction iOS 获得一分钱的成本

ios - 如何找出坐标之间的距离?

ios - YouTube 嵌入 AirPlay UIWebView

ios - 创建 UICollectionViewController 子类并添加为 subview Controller

ios - 如何只显示部分网页内容(swift)

ios - 将相机移动到底部 GMSMapView IOS

swift - WatchKit 和地理定位

swift - WatchKit 2 复杂文本仅在预览中显示