IOS App知道何时锁定应用程序或使用其他应用程序

时间:2019-03-22 22:10:33

标签: ios swift xcode

试图通过我的应用程序弄清楚如何使应用程序知道何时手机被锁定或何时最小化该应用程序以及使用其他应用程序。

这是我到目前为止所拥有的:

//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
    })

}

2 个答案:

答案 0 :(得分:0)

看看AppDelegate中的默认功能。根据您的情况,您可能会对applicationWillResignActiveapplicationDidEnterBackgroundapplicationWillTerminate感兴趣。

答案 1 :(得分:0)

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

您可以通过查看函数applicationDidEnterBackground(_:)

来实现此目的。
optional func applicationDidEnterBackground(_ application: UIApplication)

Apple Docs for DidEnterBackground

如果您将代码放在另一个类或视图控制器中,则可以在“应用程序委托”中进行访问或注册以获取通知。

Screen lock on stackoverflow

More screen lock on stackoverflow

关于检测电话是否已被锁定,StackOverflow上已经有一些关于此的文章。但是,使用本机代码可能无法查看这些内容,甚至他们建议的私有API似乎也无法很好地工作。

您应该能够使用Apple提供的委托方法来实现所需的功能。对文档进行更深入的研究。如果您让我知道为什么需要访问这些内容,我总是很乐意提供更多建议,因为您的代码中还没有100%明确。

More Apple Docs