我最近向应用程序商店提交了一个新的二进制文件并将其发送以供审核,但它立即被拒绝并显示以下消息。 “不支持的操作 - 不允许应用程序监听设备锁定通知。”。经过一番挖掘后,我发现我们无法使用“com.apple.springboard.lockstate”来确定锁定状态。
本质上,我的应用程序需要知道用户如何离开我的应用程序。无论是按主页按钮、锁定按钮、通过点击另一个应用程序的通知来离开应用程序等。有什么方法可以实现这一点吗?我开始调查我的应用程序是否在后台运行,也许我们可以检查应用程序状态来弄清楚。据我所知,我想知道是否有人对此有更多的见解
在搜索了苹果的文档并挖掘了大量的线索之后,我想我可能偶然发现了解决方案。
据我所知,这是目前检测用户是否通过主页按钮或锁定按钮离开的唯一方法(我不相信这在模拟器上有效,您必须在实际手机上尝试)。
在此委托内部(并且仅在该委托中调用时才会起作用)
func applicationDidEnterBackground(_ application: UIApplication) {
}
您可以在这里调用这个小片段:
func DidUserPressLockButton() -> Bool {
let oldBrightness = UIScreen.main.brightness
UIScreen.main.brightness = oldBrightness + (oldBrightness <= 0.01 ? (0.01) : (-0.01))
return oldBrightness != UIScreen.main.brightness
}
Usage:
func applicationDidEnterBackground(_ application: UIApplication) {
if (DidUserPressLockButton()) {
//User pressed lock button
} else {
//user pressed home button
}
}
解释:
看来苹果只允许你改变屏幕亮度applicationDidEnterBackground
当用户通过锁定按钮而不是主页按钮离开时。因此,我们的想法是稍微改变屏幕亮度,然后检查是否可以改变。这看起来有点老套,但我已经heard这实际上正在按预期工作。就测试而言,它似乎 100% 的时间都在工作。除了确实想要更改屏幕亮度的用户之外,我找不到任何问题。我希望其他人能找到一些不那么老套、更具体的东西。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)