我正在制作一个需要用户完全关注的应用程序,直到达到指定的目标。在达到目标之前,如果用户试图按下“主页”按钮,它应该被禁用,或者像ios6中的“kiosk模式”。我只需要在启动应用程序时以编程方式完成,不想通过在iPhone / iPad中手动更改设置菜单来执行任何操作在我的应用程序中完成目标后,应启用主页按钮。该应用程序针对企业。所以不需要应用商店批准。这该怎么做?提前谢谢。
编辑:我读到了“移动配置plist”。这需要重启设备。但我不想重启设备。一旦我的应用程序启动它应该处理所有事情(以编程方式)。我不希望用户/主管介入此。只是想在“引导访问”中禁用主页按钮,但在我的应用程序中以编程方式。是否有“引导访问”中的私人API可以禁用主页按钮?
注意:不适用于Jail破坏的设备。针对企业许可应用程序。
答案 0 :(得分:11)
Zachary Christopoulos使用“移动配置plist”发布了此帖子。
安装此配置文件后,将启动第一个应用程序 设备重新启动将是唯一将在重新启动之前运行的应用程序 再次使用该设备。
来自Zachary's post的示例plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadDescription</key>
<string>Disables the home button.</string>
<key>PayloadDisplayName</key>
<string>Home Button Lock</string>
<key>PayloadIdentifier</key>
<string>com.zchristopoulos.kiosk</string>
<key>PayloadOrganization</key>
<string>Zachary Christopoulos</string>
<key>PayloadType</key>
<string>com.apple.defaults.managed</string>
<key>PayloadUUID</key>
<string>B2D02E2D-BAC5-431B-8A29-4B91F71C9FC1</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadContent</key>
<array>
<dict>
<key>DefaultsDomainName</key>
<string>com.apple.springboard</string>
<key>DefaultsData</key>
<dict>
<key>SBStoreDemoAppLock</key>
<true/>
</dict>
</dict>
</array>
</dict>
</array>
<key>PayloadDescription</key>
<string>Disables Home Button</string>
<key>PayloadDisplayName</key>
<string>Home Button Lock</string>
<key>PayloadIdentifier</key>
<string>com.zchristopoulos.hbkill</string>
<key>PayloadOrganization</key>
<string>Zachary Christopoulos</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>614D1FE3-F80D-4643-AF6B-D10C4CC8737A</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>
答案 1 :(得分:2)
如果不使用私有框架或让设备越狱,您无法自动禁用主页按钮。您可以做的最接近的事情是让最终用户使用Guided Access需要三次单击主页按钮才能退出应用程序。必须首先在“常规 - >可访问性”下的“设置应用程序”中打开“引导访问”。
另请参阅:Disable Home Button Without Rebooting Device - Stack Overflow