我希望在从OTA安装我的应用程序后,设备的主页按钮将无法正常工作,因此用户无法从应用程序中退出。我的挖掘让我得到了以下结果
A)我有一种方法可以通过"mobileconfig"配置文件禁用主页按钮,但它需要重新启动设备,用户必须在启动后打开我的应用程序,我想这样做而不需要像私有这样的东西重新启动非Jail-broken设备上的框架。我想知道可能是非越狱设备吗?
C)如果无法禁用私有框架的主页按钮,那么在启动设备后是否有办法打开应用程序?,因为启动时会加载某些越狱应用程序/进程。
[注意:我不想将我的应用程序提交给iTunes。]
答案 0 :(得分:19)
在iOS6中,有一个名为“引导访问”的功能,允许设备所有者将用户(如幼儿和学校孩子)锁定到应用程序中。
答案 1 :(得分:1)
这个问题的正式答案是“你无法在ios设备中禁用主页按钮,它是os级别的架构,而且你没有获得它的授权。”
您需要深入了解操作系统流程,以进行任何可能非常困难的更改。
好吧,如果你改变了你的视线,那么在ios 6中有一个开放而简单的解决方案,称为Guided Access。
答案 2 :(得分:1)
如果您能够越狱,您的设备可以创建LaunchDaemon或使用现有的LaunchDaemon。 LaunchDaemon是plist格式的文件,在重新启动和启动设备时调用。您还需要一个由K3A
创建的名为open
的文件
从here
下载open
您需要将open
移至/ usr / bin /或者您可以将其放入您的应用中并不重要,只需设置0755 and root:wheel
的权限
现在启动LaunchDaemons,它们存储在这里
/System/Library/LaunchDaemons
这是一个例子。 让我们说你命名LaunchDaemon
com.gauravstomar.test.plist
如果com.bundle.identifier
显示您的应用标识符,您也可以在应用目录内的Info.plist
内找到它CFBundleIdentifier
现在在plist中插入以下信息
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.gauravstomar.test</string>
<key>ProgramArguments</key>
<array>
<string>open</string>
<string>com.bundle.identifier</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StartInterval</key>
<integer>1</integer>
</dict>
</plist>
Label必须与LaunchDaemon.plist同名,不包括plist扩展名
ProgramArguments用于调用文件并启动应用程序
RunAtLoad在重新启动时启用此plist启动
如果用户退出应用程序,StartInterval将使LaunchDaemon.plist在1秒后重新打开,如果用户仍在应用程序中,则不会发生任何事情
确保LaunchDaemon的权限设置为
0644 root:wheel
您仍然可以使用您的mobileconfig,以便禁用主页按钮。评估完成后,您可以禁用LaunchDaemon,以便应用程序停止使用以下命令重新启动自身
launchctl unload/System/Library/LaunchDaemon/com.gauravstomar.plist
如果您需要更多帮助,请与我们联系。
答案 3 :(得分:0)
没有越狱,该应用程序是沙盒。该应用程序根本无法访问主页按钮。你真的不应该弄乱主页按钮。
除了“引导访问”,您还可以使用“限制”,这将允许您禁用所有接受打开您的应用程序。您可以禁用Apple特定的应用程序,包括Safari,并阻止用户安装应用程序,删除应用程序,购买等等......
我们有一些iPod touch,我们向客户出租了一个票据扫描应用程序。我们使用“限制”来禁用我们的应用程序以外的所有内容。到目前为止,最有用的限制是阻止人们删除应用程序 - 即使在警告提示之后,有多少人会意外删除应用程序,这是令人难以置信的。