Отключить кнопку домой без перезагрузки устройства

Я хочу, чтобы после установки моего приложения из OTA кнопка "Домой" на устройстве вообще не работала, поэтому пользователь не может выйти из приложения. Мои раскопки привели меня к следующим результатам

А) У меня есть способ отключить кнопку "Домой" с помощью профиля "mobileconfig", но для этого нужно перезагрузить устройство, и пользователь должен открыть мое приложение сразу после загрузки, я хочу сделать это без перезапуска с чем-то вроде Private Frameworks на не-Jail Взломанные устройства. Я хочу знать, возможно ли это для устройств без джейлбрейка?

C) Если невозможно отключить кнопку "Домой" с помощью Private Frameworks, есть ли способ открыть приложение сразу после загрузки устройства?, Так как определенные приложения / процессы джейлбрейка загружаются при запуске.

[ПРИМЕЧАНИЕ. Я не хочу отправлять свое приложение в iTunes.]

4 ответа

В iOS6 есть функция под названием "Управляемый доступ", которая позволит владельцам устройств блокировать пользователей (например, малышей и школьников) в приложении.

Этим объясняются приложения Guided Access для iOS 6.

Официальный ответ на этот вопрос: "Вы не можете отключить кнопку home в устройствах ios, это архитектура уровня os, и вы не авторизованы для этого".

Вам нужно копаться в потоке операционной системы, чтобы вносить любые изменения, которые могут быть довольно жесткими.

хорошо, если вы измените свой взгляд, хотя это, чем есть одно открытое и простое решение для этого в ios 6, известное как управляемый доступ.

Если вы можете сделать джейлбрейк своего устройства, создайте LaunchDaemon или используйте существующий. LaunchDaemon - это файл в формате plist, который вызывается после перезагрузки и запуска вашего устройства. Вам также понадобится файл с именем open созданный K3A

Скачать 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>

Метка должна совпадать с именем LaunchDaemon.plist, за исключением расширения plist

ProgramArguments - это то, что вызывает открытие файла и запускает приложение

RunAtLoad запускает этот список после перезагрузки

StartInterval заставит LaunchDaemon.plist снова открыться через 1 секунду, если пользователь выходит из приложения, если пользователь все еще в приложении, ничего не произойдет

Убедитесь, что разрешения для вашего LaunchDaemon установлены на

0644 root:wheel

Вы по-прежнему можете использовать свой mobileconfig, чтобы отключить кнопку "Домой". После завершения оценки вы можете отключить LaunchDaemon, чтобы приложение перестало перезапускаться с помощью следующей командыlaunchctl unload/System/Library/LaunchDaemon/com.gauravstomar.plist

Дайте мне знать, если вам нужна дополнительная помощь.

Без джейлбрейка, приложение находится в песочнице. Приложение просто не имеет доступа к беспорядку с помощью кнопки "Домой". И вы действительно не должны возиться с кнопкой домой.

В дополнение к "Управляемому доступу" вы также можете использовать "Ограничения", которые позволят вам отключить все, что разрешено открытием вашего приложения. Вы можете отключить определенные приложения Apple, включая Safari, и запретить пользователям устанавливать приложения, удалять приложения, делать покупки и т. Д.

У нас есть несколько iPod touch с приложением для сканирования билетов, которое мы сдаем в аренду нашим клиентам. Мы используем "Ограничения", чтобы отключить все, кроме нашего приложения. Самое полезное ограничение на данный момент - запрещение людям удалять приложения. Невероятно, сколько людей случайно удалит приложение, даже после предупреждения.

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