设备处于睡眠状态时调用 didReceiveApplicationContext?

Call didReceiveApplicationContext while device is asleep?

当我点击我的 Apple Watch 应用程序中的按钮时,我想取消由 iPhone 应用程序安排的本地通知。

现在,我正在使用 updateApplicationContext 方法发送信息以在手表和 phone 之间传输信息,并通过 didReceiveApplicationContext 方法取消我的本地通知。

现在,didReceiveApplicationContext 仅在应用程序打开时被调用。这意味着如果我在此期间没有打开应用程序,通知仍然会出现。我需要确保即使我不打开应用程序也不会出现通知。

有什么方法可以在设备休眠或者app不在前台的时候在后台调用didReceiveApplicationContext吗?

不,为此你必须检查 WatchKit 扩展的 WCSessionreachable 属性 是否是 true/YES,如果它使用 sendMessage API 之一,因为它们可以在后台唤醒 iOS 应用程序。