Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 当模拟器被锁定时,WatchKit本地通知不会触发_Swift_Notifications_Ios9_Watchkit_Watchos 2 - Fatal编程技术网

Swift 当模拟器被锁定时,WatchKit本地通知不会触发

Swift 当模拟器被锁定时,WatchKit本地通知不会触发,swift,notifications,ios9,watchkit,watchos-2,Swift,Notifications,Ios9,Watchkit,Watchos 2,假设您有一个iOS应用程序,该应用程序可以安排本地通知。当通知被触发时,它会显示在iPhone模拟器中。如果iPhone模拟器已锁定,则通知将显示在Watch simulator中,但仅当应用程序未激活且模拟器未锁定时才会显示 此场景中不显示通知: iPhone模拟器已锁定 手表模拟器正在运行应用程序,但已使用Command+L锁定 此场景中也不显示通知: iPhone模拟器已锁定 手表模拟器正在运行应用程序 用户切换到手表表面 用户使用命令+L锁定模拟器 在这两种情况下,通知不会显示在

假设您有一个iOS应用程序,该应用程序可以安排本地通知。当通知被触发时,它会显示在iPhone模拟器中。如果iPhone模拟器已锁定,则通知将显示在Watch simulator中,但仅当应用程序未激活且模拟器未锁定时才会显示

此场景中不显示通知:

  • iPhone模拟器已锁定
  • 手表模拟器正在运行应用程序,但已使用Command+L锁定
此场景中也不显示通知:

  • iPhone模拟器已锁定
  • 手表模拟器正在运行应用程序
  • 用户切换到手表表面
  • 用户使用命令+L锁定模拟器
在这两种情况下,通知不会显示在两个模拟器中。如果使用Command+L解锁手表模拟器,将立即显示通知

我还注意到,如果模拟器被锁定,则不会调用
WKExtensionDelegate.didReceiveLocalNotification
方法;但是,如果应用程序正在运行,但模拟器未锁定,则会调用此方法

看来beaviour与真实设备是一致的。这在iOS 9/watchOS 2上发生

通知的配置如下所示:

notification.alertBody = "Tempo scaduto"
notification.soundName = UILocalNotificationDefaultSoundName
notification.category = "style0"
notification.fireDate = date
notification.userInfo = dictionary
在上面提到的场景中,通知是“丢失”的,因为它不会显示给用户,并且没有回调到应用程序代码来手动管理它