如果安装或解锁配套应用程序,watchOS 应用程序本地通知会延迟

问题描述 投票:0回答:1

我有一个 watchOS 和 iOS 应用程序,它们设置为彼此独立运行,我可以单独安装它们,并且与 WKSession 之类的任何东西都不会相互依赖。

我遇到的问题是,当我同时安装了 iOS 和 watchOS 应用程序时,如果我的 iPhone 已解锁,手表上的通知将延迟约 13 秒。如果我锁定手机或卸载 iOS 应用程序,通知将立即显示在手表上。根据苹果公司的说法,这就是安装配套应用程序时当前处理通知的方式。

这是我安排通知的代码:

func scheduleNotification(secondsFromNow: Double, title: String = "", body: String = "") { let uuid = UUID().uuidString let content = UNMutableNotificationContent() content.title = title content.body = body content.sound = UNNotificationSound.default let trigger = UNTimeIntervalNotificationTrigger(timeInterval: secondsFromNow, repeats: false) let request = UNNotificationRequest(identifier: uuid, content: content, trigger: trigger) // Request authorization again in case user dismissed before self.requestAuthorization() // Schedule the notification if Config.notificationsEnabled() { userNotificationCenter.add(request) { error in if let error = error { print("Error scheduling notification: \(error)") } } } }
有没有办法可以更改此设置,以便通知仅显示在预定的设备上,而不会出现延迟?我还尝试使用 WatchConnectivity 在具有相同标识符的两个设备上安排通知,如建议的 

here 但问题仍然相同,手表通知被延迟。

最后我要补充一点,每个应用程序都是完全独立的,并且不以任何方式相互依赖。所有通知均位于运行应用程序的设备(iOS 或 watchOS)本地。

ios swift watchkit watchos watchconnectivity
1个回答
0
投票
您不会喜欢这个回复,但从

此支持页面看来这是不可能的。您看到的延迟可能是因为它正在尝试发送到手机(这是优先级),而当它无法发送到手机时,它会选择手表。

如果您的 iPhone 已解锁,您会在 iPhone 而不是 Apple Watch 上收到通知。

如果您的 iPhone 已锁定或处于睡眠状态,您会在 Apple Watch 上收到通知,除非您的 Apple Watch 已锁定。

但是您拥有单独的应用程序这一事实似乎还有一些希望:

某些应用程序(例如“噪音”应用程序)仅适用于您的 Apple Watch。这些应用程序的通知不会出现在您的 iPhone 上。

为了确保应用程序完全独立,您可以浏览此列表并确保操作系统未识别出它们是相关的。

    不同的捆绑包标识符
    • iOS 应用程序:com.yourcompany.youriOSApp
    • watchOS 应用程序:com.yourcompany.yourWatchApp
  1. 分离应用程序目标
    • 在 Xcode 中,确保 watchOS 应用程序未添加为 iOS 应用程序的目标或扩展。
    • 手表应用程序应该独立于您的项目中,而不是嵌入到 iOS 应用程序中。
  2. 部署信息
    • 在 watchOS 应用程序的 Info.plist 中,将
    • WKWatchOnly
       设置为 
      YES
       以指示该应用程序独立于 iOS 应用程序运行。
    • 确保最低系统版本设置为 watchOS 6 或更高版本,因为从 watchOS 6 开始支持独立手表应用程序。
  3. 避免共享应用程序组和权利
    • 删除任何共享应用程序组、钥匙串访问组或将 watchOS 应用程序链接到 iOS 应用程序的权利。
    • 这包括避免应用程序之间共享容器或任何形式的数据共享。
  4. 查看通知设置
    • 确保使用的通知类别和标识符对于手表应用程序是唯一的。
我可以提供的最后一个帮助是您可以通过分离通知来指导您的用户。来自同一支持页面:

    在 iPhone 上打开 Apple Watch 应用,然后轻点“我的手表”选项卡。
  1. 点击通知。
  2. 点击应用程序即可查看其选项。要在 Apple Watch 和 iPhone 上显示的应用程序上使用相同的通知设置,请轻点“镜像我的 iPhone”。某些应用程序允许您自定义通知。轻点“自定义”,然后选择一个选项:
    • 允许通知:通知会显示在通知中心,并且您的 Apple Watch 会向您发出提醒。

    • 发送到通知中心:通知会直接发送到通知中心,Apple Watch 不会提醒您。

    • 通知关闭:应用程序不发送通知。

© www.soinside.com 2019 - 2024. All rights reserved.