2010-01-30 6 views
3

Я хотел бы, чтобы запустить приложение в режиме киоска, так что онКак создать приложение для iPhone в виде киоска?

  1. автотрансформаторы начинается после запуска устройства
  2. снова начинают после того, как приложение потери аварии/мощность/и т.д..

Любые идеи, как это сделать на [вероятно, взломанном?] IPhone?

ответ

3

Простейшим способом было бы создать расширение mobilesubstrate, которое запускается внутри SpringBoard и генерирует его собственный UIWindow.

Создайте функцию static __attribute__((constructor)) и внутренний регистр для UIApplicationDidFinishLaunchingNotification. После получения уведомления 99% стандартного iPhone SDK будет работать как есть.

+0

спасибо, можете ли вы предоставить больше кода/ресурсов при создании расширений mobilesubstrate? – cocoapriest

+0

MobileSubstrate достаточно прост; просто скомпилируйте свой проект с помощью флага компоновщика '-dynamiclib', проигнорируйте ошибку codeign и переместите скомпилированный двоичный файл из' build /.../ MyExt.app/MyExt' в '/ Library/MobileSubstrate/DynamicLibraries/MyExt.dylib' на вашем устройстве. Если вы просто создаете свой собственный 'UIWindow' и такой, стандартный SDK будет делать; если вы хотите взаимодействовать с самим SpringBoard, вам нужно будет получить заголовки SpringBoard (через класс-дамп или какой-то другой источник). – rpetrich

+0

Есть ли прецедент приложений, которые это делают? Мне бы хотелось увидеть ссылку GitHub на некоторый пример кода. – funroll

2

Он должен быть взломан, поскольку стандартная ОС не даст вам такого уровня контроля.

0

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