如何在iOS 6中以编程方式将用户锁定到单应用模式?

3
有一些与此相关的问题,但是得到确切的答案是: 锁定iPhone / iPod / iPad,使其只能运行一个应用程序 最近推出了iOS 6,其中包括一些面向企业的功能,其中两个功能为:
  1. 指南访问
  2. 监督式访问
这两个功能都涉及辅助功能控制特性,例如允许用户限制对设备的访问,仅在他们拥有设备的完整访问权限时才能使用。因此,这仅对拥有该设备的人有用,例如学校将其设备用于考试,餐厅用于菜单,产品展示等等。所有这些人都可以访问设备以配置设置等。
现在我的问题从这里开始,我在考虑一个应用程序,在用户运行该应用程序并退出应用程序后,设备会像以前一样正常工作,而该应用程序会监视用户的操作。
在应用程序处于活动状态时,用户不应能够访问任何其他功能或按钮,这适用于所有三种设备iPad、iPhone和iPod。
此外,我发现可以通过安装某些配置文件等来实现此目的,但这看起来很奇怪,我们不能要求用户这样做。
因此,简单的想法是用户将像往常一样安装该应用程序,并且当他登录应用程序时,我们可以将其锁定为单个应用程序模式。

你正在寻找的词是“以编程方式”。 - user529758
谢谢,刚刚纠正了一下,你有关于答案的想法吗? - Ishan Dhingra
1
我基本上会说这不是公开的,但如果有选项的话,你可以尝试钩入SpringBoard。 - user529758
如果可以使用私有API,请提供如何在XCode中使用/包含/导入私有框架和代码的任何参考。谢谢。 - Shanmugaraja G
@H2CO3 Spring Borad Hooking 看起来不太安全,可能会有其他事件对应用程序造成问题。 - Ishan Dhingra
@H2CO3 这里有一个应用程序正在做我正在寻找的事情:http://www.42gears.com/surelock/surelockios.html - Ishan Dhingra
4个回答

3

SureLock iOS应用程序只是提醒用户如何在系统偏好设置中进行操作。

如果您违反私有框架的规则,从应用程序本身执行操作是不可能的。并且破坏它非常困难。

很抱歉告诉您,以您目前的方式呈现想法,将永远无法获得AppStore的批准。


1
我也是这么想的,关于AppStore的规定。 - Ishan Dhingra
@Nils Munch 我有同样的需求。但我不需要Appstore的批准。这是为企业许可证申请。你能告诉我如何做吗? - Ka-rocks
@Nils Munch,我认为可以使用MDM来完成。OurPact应用程序正在这样做。但是如何做到的匿名保密方式也很棒,没有人分享这种知识。 - Rushi trivedi

1

你好,也许我来晚了,但我有个好消息要告诉你。

苹果在IOS 7中提供了一个新功能,我们可以在没有用户权限的情况下将用户锁定在单一模式下(锁定和解锁模式),这是苹果文档链接:

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIKitFunctionReference/#//apple_ref/c/func/UIAccessibilityRequestGuidedAccessSession

另一种方法是安装配置文件,就像这样。

http://ipadhire.co.nz/lockdown.mobileconfig

它锁定了iPhone的主页按钮并启用了单一模式。


设备必须受监管才能使用此功能,文档中已经写明。 - Andrii Bas

1
这个问题的被接受答案已经不再正确:
从iOS 7开始,UIKit将函数UIAccessibilityRequestGuidedAccessSession公开为API。
我不知道,但可以想象这个函数作为私有API存在于iOS 6中,引入了引导访问功能。
请注意,为了使此方法生效,所涉及的设备必须使用MDM进行监督,并且您想要使用此API的应用程序的ID必须包含在部署到该设备的设备管理配置文件中。

我已经阅读了许多文档,但没有一个提供适当和完整的步骤。如果您有,请分享。 - Rushi trivedi

0

为此,您需要执行以下操作...

  1. 访问苹果的私有API
  2. 访问苹果的私有框架

苹果不鼓励访问其私有API,特别是在涉及应用商店时。如果您在应用商店的应用审核过程中访问了私有API,他们将拒绝该应用并给出“访问私有API”的消息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接