【问题标题】:IOS App to know when app is locked or using another appIOS 应用程序知道应用程序何时被锁定或使用另一个应用程序
【发布时间】:2019-03-22 22:10:33
【问题描述】:

试图通过我的应用程序弄清楚如何让应用程序知道手机何时被锁定或应用程序何时最小化并使用另一个应用程序。

这是我目前所拥有的:

//warning notification
func warningNotification() {
    let content = UNMutableNotificationContent()
    content.title = "Go back to app immediately to prevent"
    //        content.body = publictime
    //        print("Notification timer\(content.body)")
    content.badge = 1

    let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 1,
                                                    repeats: false)

    let requestIdentifier = "demoNotification"
    let request = UNNotificationRequest(identifier: requestIdentifier,
                                        content: content, trigger: trigger)

    UNUserNotificationCenter.current().add(request,
                                           withCompletionHandler: { (error) in
                                            // Handle error
    })

}

【问题讨论】:

标签: ios swift xcode


【解决方案1】:

查看AppDelegate 中的默认函数。在您的情况下,您可能对applicationWillResignActiveapplicationDidEnterBackgroundapplicationWillTerminate 感兴趣。

【讨论】:

    【解决方案2】:

    有几种方法可以实现这些目标;但是,目前据我所知,无法确定用户现在是否正在使用另一个应用程序。您可以判断用户是否将您的应用置于后台。应用程序在后台运行后,它们要么进入主屏幕,要么打开另一个应用程序。

    您可以通过查看函数 applicationDidEnterBackground(_:) 来实现这一点

    optional func applicationDidEnterBackground(_ application: UIApplication)
    

    Apple Docs for DidEnterBackground

    如果您将代码放在另一个类或视图控制器中,您可以在 App Delegate 中访问它或注册以获取通知。

    Screen lock on stackoverflow

    More screen lock on stackoverflow

    关于检测手机是否被锁定,StackOverflow 上已经有几篇关于此的帖子。但是,查看这些可能无法使用本机代码,甚至他们建议的私有 API 似乎也不能很好地工作。

    您应该能够使用 Apple 提供的委托方法来实现您所需要的。更深入地查看文档。如果你让我知道你为什么需要访问这些东西,我总是很乐意提供更多建议,因为你的代码并不是 100% 清楚的。

    More Apple Docs

    【讨论】:

      猜你喜欢
      • 2022-01-18
      • 1970-01-01
      • 2010-12-31
      • 1970-01-01
      • 2014-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多