Отключить кнопку домой без перезагрузки устройства
Я хочу, чтобы после установки моего приложения из 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 с приложением для сканирования билетов, которое мы сдаем в аренду нашим клиентам. Мы используем "Ограничения", чтобы отключить все, кроме нашего приложения. Самое полезное ограничение на данный момент - запрещение людям удалять приложения. Невероятно, сколько людей случайно удалит приложение, даже после предупреждения.