【问题标题】:Check iOS app state from UNNotificationServiceExtension [Swift]从 UNNotificationServiceExtension [Swift] 检查 iOS 应用程序状态
【发布时间】:2018-02-07 10:10:55
【问题描述】:

我在我的 iOS Swift 应用程序中使用 UNNotificationServiceExtension,它运行正常。对于特殊情况,当来自UNNotificationServiceExtension 的方法didReceive 被调用时,我需要知道我的应用程序是否正在运行。我尝试给UserDefaults写一个布尔值,表示应用程序状态,它正在被AppDelegate事件修改,例如在调用applicationWillTerminate时将其设置为false,但有时应用程序可以在不调用@的情况下被系统杀死987654327@,所以我在UserDefaults 中的变量将表明应用程序还活着。有没有更好/更智能的方法从 iOS UNNotificationServiceExtension 到达主应用程序状态?

【问题讨论】:

    标签: ios swift ios-extensions


    【解决方案1】:

    如果您在AppDelegate 中实现/覆盖UNNotificationServiceExtension 中的didReceive,那么您可以像这样简单地检查

    let state = UIApplication.shared.applicationState

    【讨论】:

    • 不,这行不通。我收到以下错误:“共享”不可用:在适当的情况下使用基于视图控制器的解决方案
    • 你在哪里访问didReceive
    • 我觉得不可能!
    • @NeelBhasin 在我的类中继承自 UNNotificationServiceExtension。它在 iOS 架构的不同包中,所以我无法以如此明显的方式访问 UIApplication.shared
    猜你喜欢
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多