我最近向应用程序商店提交了一个新的二进制文件并将其发送进行审核,并立即被拒绝,并显示以下消息."不支持的操作 - 不允许应用程序监听设备锁定通知." 经过一番挖掘,我发现我们不能使用"com.apple.springboard.lockstate"来找出锁定状态.
基本上,我的应用程序需要知道用户如何离开我的应用程序.无论是按下主页按钮,锁定按钮,通过点击另一个应用程序的通知等离开应用程序,有没有办法实现这一目标?我开始调查,看看我的应用程序是否在后台运行,也许我们可以检查应用程序状态来弄清楚.就我而言,我想知道是否有人对此有任何了解
TNg*_*yen 15
在搜索了苹果的文档并挖掘了大量的线程后,我想我可能偶然发现了解决方案.
据我所知,目前这是检测用户是否通过主页按钮或锁定按钮的唯一方法(我不相信这在模拟器上有效,你必须在实际手机上试用).
在这个委托内部(它只在这个委托中调用时才有效)
func applicationDidEnterBackground(_ application: UIApplication) {
}
Run Code Online (Sandbox Code Playgroud)
你可以在这里打电话给这个小片段:
func DidUserPressLockButton() -> Bool {
let oldBrightness = UIScreen.main.brightness
UIScreen.main.brightness = oldBrightness + (oldBrightness <= 0.01 ? (0.01) : (-0.01))
return oldBrightness != UIScreen.main.brightness
}
Run Code Online (Sandbox Code Playgroud)
用法:
func applicationDidEnterBackground(_ application: UIApplication) {
if (DidUserPressLockButton()) {
//User pressed lock button
} else {
//user pressed home button
}
}
Run Code Online (Sandbox Code Playgroud)
说明:
苹果似乎只允许您applicationDidEnterBackground在用户离开锁定按钮而不是主页按钮时更改屏幕亮度.因此,我们的想法是以微不足道的数量更改屏幕亮度,并检查它是否能够更改.这看起来有点哈哈,但我听说这实际上是按预期工作的.至于测试它似乎100%的时间都在工作.除了真正想要改变屏幕亮度的用户之外,我找不到任何问题.我希望其他人可以找到一些不那么hacky和更具体的东西.
| 归档时间: |
|
| 查看次数: |
1891 次 |
| 最近记录: |