【发布时间】:2017-05-19 13:09:51
【问题描述】:
我最近向应用商店提交了一个新的二进制文件并将其发送以供审核,但立即被拒绝并显示以下消息。 “不支持的操作 - 不允许应用收听设备锁定通知。”。经过一番挖掘,我发现我们不能使用“com.apple.springboard.lockstate”来确定锁定状态。
本质上,我的应用需要知道用户是如何离开我的应用的。无论是按下主页按钮,锁定按钮,通过点击另一个应用程序的通知离开应用程序等等。有没有办法实现这一点?我开始调查我的应用程序是否要在后台运行,也许我们可以检查应用程序状态以找出答案。据我所知,我想知道是否有人对此有更多见解
【问题讨论】:
-
我怀疑这是否可能以合法的方式(您可以通过多种不同的方式离开应用程序......)我会回顾您的需求来源。用户如何从中受益,您如何以另一种方式将其提供给用户?你能解释一下你正在解决的潜在用户问题吗?我们也许可以帮助解决这个问题。
-
该应用程序是一款生产力应用程序,它挑战用户留在我们的应用程序上。因此,能够知道用户如何离开我们的应用程序至关重要,因为如果用户留在我们的应用程序上并且只按下锁定按钮,那么从技术上讲,该人仍在我们的应用程序上。但是,如果按下主页按钮或不按什么,他们将离开我们的应用程序,这将结束挑战或其他什么。
-
我相信(并且很长时间没有测试过,但我认为这是真的)在锁定按钮的情况下不会调用
applicationDidEnterBackground。实际上,我希望您认为无效的所有情况都会调用applicationDidEnterBackground,而您认为非无效的情况(例如接听电话)只会调用applicationWillResignActive。你将不得不测试;我已经好几年没有探索过它的细节了。 -
@RobNapier 不幸的是,即使按下锁定按钮也会调用 applicationDidEnterBackground。
-
@TPN1994 知道这一点并不能解决您的问题。用户可以从锁定屏幕导航到应用(通过通知、相机、今日小部件等),您的应用将永远不会被重新激活。