在应用程序打开时在 watchOS 上检测新的一天

Posted

技术标签:

【中文标题】在应用程序打开时在 watchOS 上检测新的一天【英文标题】:Detect New Day on watchOS While App Is Open 【发布时间】:2020-12-23 01:40:27 【问题描述】:

我目前正在开发我的第一个 watchOS 应用扩展,它基于 Xcode 的 Multiplatform 模板。我正在寻找一种解决方案,让我能够在手表应用程序打开时检测到重大的日期变化,例如观察午夜。但是,我一直无法找到这样的解决方案。如果可能,我想避免使用Timers。

我能够观察到 UIApplication.significantTimeChangeNotification (ios) 和 Notification.Name.NSCalendarDayChanged (macOS),但我没有发现 watchOS 的类似通知。我在 WKExtension 的文档中确实发现了类似于 iOS 应用生命周期通知的通知。

我想要的是在 watchOS 应用程序打开并观察到新的一天时更新它的 UI,UIApplication.significantTimeChangeNotification 让我在 iOS 上得到了我。在手表上打开应用时,手表应用是否可以观察日期变化?

【问题讨论】:

【参考方案1】:

您也可以在 watchOS 上使用.NSCalendarDayChanged

NotificationCenter.default.addObserver(
    self,
    selector: #selector(dayChanged(_:)),
    name: .NSCalendarDayChanged,
    object: nil
)

【讨论】:

我不确定我是如何错过 .NSCalendarDayChanged 可用于 watchOS(watchOS 2.0+)的,但这正是我所需要的。

以上是关于在应用程序打开时在 watchOS 上检测新的一天的主要内容,如果未能解决你的问题,请参考以下文章

Flutter Google Map 在 IOS 中首次打开时崩溃

打开手机键盘(JS)时防止调整大小事件

Android - 解析推送通知在打开时崩溃

如何在 WatchOS 上检测桌子的移动?

当我关闭调制解调器同时保持路由器打开时如何检测互联网连接?

打开时启用倒计时的测验