9

我正在制作一个需要用户全神贯注的应用程序,直到达到指定的目标。在实现目标之前,如果用户尝试按下“主页”按钮,则应该禁用它,或者像 ios6 中的“信息亭模式”。我只需要在启动应用程序时以编程方式完成,不喜欢通过手动更改 iPhone/iPad 的设置菜单来做任何事情在我的应用程序中完成目标后,应该启用主页按钮。该应用程序面向企业。所以不需要应用商店的批准。这个怎么做?提前致谢。

编辑:我读到了“移动配置plist”。这需要重新启动设备。但我不喜欢重启设备。一旦我的应用程序启动,它应该处理所有事情(以编程方式)。我不希望用户/主管对此进行干预。只想在“引导访问”中禁用主页按钮,但在我的应用程序中以编程方式。“引导访问”是否有任何私有 api 可用于禁用主页按钮?

注意:不适用于越狱设备。针对企业许可的应用程序。

4

2 回答 2

11

Zachary Christopoulos使用“移动配置列表”对此发表了一篇文章。

安装此配置文件后,重新启动设备时启动的第一个应用程序将是唯一运行的应用程序,直到您再次重新启动设备。

Zachary 帖子中的示例 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>
于 2013-02-25T14:07:38.863 回答
2

如果不使用私有框架或越狱设备,您将无法自动禁用主页按钮。您可以做的最接近的事情是让您的最终用户使用引导访问来要求三次单击主页按钮以退出应用程序。必须首先在“设置应用程序”中的“常规”->“辅助功能”下打开引导式访问。

另请参阅:在不重新启动设备的情况下禁用主页按钮 - Thinbug

于 2013-02-25T14:02:07.790 回答