Companion Apple Watch App 本地通知延迟?

Posted

技术标签:

【中文标题】Companion Apple Watch App 本地通知延迟?【英文标题】:Companion Apple Watch App local notifications delayed? 【发布时间】:2021-12-11 00:41:53 【问题描述】:

我有一个 Apple Watch 应用程序作为 iPhone 应用程序的配套应用程序。 Apple Watch App 上的本地通知延迟。我安排在 10 秒后触发本地通知。当我按下手表上创建通知的按钮并退出应用程序时,显示通知不需要 10 秒,而是大约 23 秒。

我创建了一个具有相同本地通知代码的独立测试/独立 Apple Watch 应用,在这种情况下,本地通知会在正确的时间触发。

我使用的是 watchOS 8.1。这是 Apple Watch 上的新功能还是错误?因为在 iPhone 上它可以毫无延迟地工作。提前谢谢你:)

// Configure the notification's payload. 
let content = UNMutableNotificationContent()
    content.title = "Drink some milk!"
    content.subtitle = "you have 10 sec"
    content.sound = .default
    content.categoryIdentifier = "myCategory"
    let category = UNNotificationCategory(identifier: "myCategory", actions: [], intentIdentifiers: [], options: [])
    UNUserNotificationCenter.current().setNotificationCategories([category])
    let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 10, repeats: false)
    let request = UNNotificationRequest(identifier: "milk", content: content, trigger: trigger)
     
    UNUserNotificationCenter.current().add(request)  (error) in
      if let error = error
        print(error.localizedDescription)
      else
        print("scheduled successfully")
      
    

【问题讨论】:

watchos 8.3 的同样问题 【参考方案1】:

这里有一个反馈: https://developer.apple.com/forums/thread/696280

这是正确的行为。

如果您同时安装了手机和手表应用,我们会在手机解锁时尝试协调手机和手表通知。如果应用开发者未在手机上发送通知,手表将在 13 秒后超时并发出警报。

对此的最佳解决方案是在两个设备上发送相同的通知,确保 UNNotificationRequest.identifier 在每个实例的基础上匹配。

这将使我们能够正确地警觉和推断。

如果手表应用发送本地通知,I'll send the notification 13 seconds ahead of time。这样通知似乎是准时的

希望以后有更好的解决方案

【讨论】:

以上是关于Companion Apple Watch App 本地通知延迟?的主要内容,如果未能解决你的问题,请参考以下文章

applewatch打开后台快捷

swift 评估你的App是否加入Apple Watch功能

apple watch怎么关闭后台

Apple Watch怎么使用安装APP应用程序

如何在 Apple Watch 中创建构建(.ipa 或 .app)

Apple Watch:一个 Watchkit App 可以与多个 iOS App 通信吗?