watchOS1 - 当通知到达时,第一个InterfaceController加载

时间:2015-08-03 20:35:23

标签: watchkit

每次Watch收到通知(假设为本地)时,都会加载静态长外观或动态长外观界面。

然而,我观察到的是每次相应的手表应用程序的第一个接口控制器也被加载。

其他人也观察到了什么吗?

  1. 每次Watch收到通知时,Watch应用程序的第一个界面控制器也会在幕后运行。
  2. 如果真的如此,如何区分手表应用程序何时运行,因为用户打开它以及何时运行,因为有通知来了? awakeWithContext中的上下文:在两种情况下都为null。

2 个答案:

答案 0 :(得分:0)

  1. 是的,我也注意到了。当点击按钮时,它似乎还负责处理本地和远程通知的操作方法:

    handleActionWithIdentifier:forLocalNotification:

  2. 我认为你可以使用:

    didReceiveRemoteNotification:withCompletion:

  3. didReceiveLocalNotification::withCompletion:
    

    检测您的应用从远程或​​本地通知填充的时间

答案 1 :(得分:0)

从watchOS 3开始,您可以通过检查扩展程序的awake(withContext:)在此方案的早期退出applicationState

override func awake(withContext context: Any?) {
    if #available(watchOS 3.0, *) {
        if WKExtension.shared().applicationState == .background {
            print("Awake with Context in background.  Not processing.")
            return
        }
    }

    // otherwise, load normally
}