Как программно включить "режим киоска" в ipad?

Я делаю приложение, которое требует полного внимания пользователей, пока не будет достигнута указанная цель. перед достижением цели, если пользователь пытается нажать кнопку "домой", его следует отключить, или, как "режим киоска" в ios6. Мне просто нужно было сделать программно во время запуска приложения, не хочу ничего делать, вручную изменяя в меню настроек в iPhone / iPad После завершения цели в моем приложении, должна быть включена кнопка home. Приложение предназначено для предприятия. Так что нет необходимости в одобрении магазина приложений. Как это сделать? заранее спасибо.

Редактировать: я читал о "мобильной конфигурации Plist". Для этого нужно было перезагрузить устройство. Но я не люблю перезагружать устройство. Однажды, когда мое приложение запущено, оно должно обо всем позаботиться (программно). Я не хочу вмешательства пользователей / супервизоров в это. Просто хочу отключить кнопку "Домой", как в "Управляемом доступе", но программно внутри моего приложения. Есть ли какой-нибудь частный API, доступный из "Управляемого доступа", чтобы отключить кнопку "Домой"?

Примечание: не для сломанного устройства Jail. Предназначен для корпоративного лицензированного приложения.

2 ответа

У Захария Кристопулоса есть пост на эту тему, использующий "мобильный список настроек".

После установки этого профиля первое приложение, которое запускается при перезагрузке устройства, будет единственным приложением, которое будет работать, пока вы снова не перезагрузите устройство.

Пример плиста из поста Захария:

<?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>

Без использования частных платформ или джейлбрейка устройства вы не сможете автоматически отключить кнопку "Домой". Самое близкое, что вы можете сделать, это заставить вашего конечного пользователя использовать Guided Access, чтобы потребовать тройного нажатия кнопки "Домой" для выхода из приложения. Управляемый доступ должен быть сначала включен в приложении "Настройки" в разделе "Общие" -> "Доступность".

См. Также: Отключить кнопку "Домой" без перезагрузки устройства - переполнение стека

Другие вопросы по тегам