Принудительное открытие приложения iOS на переднем плане с помощью частных API

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

У нас нет контроля над другими приложениями, поэтому заставить их переключиться на наше после тайм-аута невозможно.

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

У меня есть ощущение, что это невозможно сделать без джейлбрейка из-за изолированной природы приложений, например, нет возможности отправить сообщение любой службе, запускающей приложения на устройстве. Хотя это должно быть возможным, поскольку демонстрационные устройства в магазинах Apple могут вернуться к демонстрационному приложению-заставке, если их оставить в покое на некоторое время. Что они делают для достижения этого?

Если для этого есть джейлбрейк, конфигурация или что-то, что может обработать служба MDM, я был бы рад попробовать это.

Опять же, это касается частного приложения, которое не будет распространяться в App Store. Приложение будет размещено на устройствах, расположенных по всему зданию и работающих в нашей внутренней сети.


person Beau Nouvelle    schedule 23.08.2018    source источник
comment
Нет способа сделать это. Однако, если вы работаете на ОС Android, решения будут.   -  person Raptor    schedule 23.08.2018
comment
Устройства в Apple Store не работают под управлением стандартной версии iOS; у них есть специальный магазин Apple Store   -  person Paulw11    schedule 23.08.2018
comment
вы хотите разбудить приложение или переключиться на это приложение   -  person Muhammed Azharudheen    schedule 23.08.2018
comment
Переключитесь на это приложение @MuhammedAzharudheen   -  person Beau Nouvelle    schedule 23.08.2018
comment
@Raptor обязательно рассмотрит Android, если на iOS нет возможности.   -  person Beau Nouvelle    schedule 23.08.2018
comment
@ Paulw11 Это имеет смысл, спасибо.   -  person Beau Nouvelle    schedule 23.08.2018
comment
Когда мы делаем киоски с планшетами, мы просто используем планшеты-дроиды — становится намного проще. Это облегчит вам жизнь?? Если это проект Unity, сборка для планшетов droid не составит труда (ДАЖЕ С ВАШЕГО MAC — нет необходимости покупать компьютер с Windows!). Вы буквально просто подключаете его кабелем и нажимаете кнопку воспроизведения — даже если вы ничего не знаете о дроидах! хе.   -  person Fattie    schedule 23.08.2018


Ответы (1)


Через Jailbreak вы можете посмотреть что-то вроде AutoLaunch:

Если вы используете определенное приложение, которое то тут, то там зависает, то новый бесплатный твик для джейлбрейка под названием AutoLaunch может стать вашим следующим лучшим другом. Он может автоматически повторно запускать любое приложение, которое дает сбой на вашем устройстве, поэтому вам не нужно перезапускать его самостоятельно.

http://www.idownloadblog.com/2017/01/08/autolaunch/< /а>

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

ОБНОВЛЕНИЕ:

Это с открытым исходным кодом:

https://github.com/chenzhijie/autolaunch

При дальнейшем изучении источника похоже, что он использует следующее для запустить приложение после сбоя:

int createSubProcessResult = fork();
if(createSubProcessResult == 0) {
   execl("/usr/bin/open","open",[currentAppBundleId UTF8String],NULL);
}

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

person fulvio    schedule 23.08.2018
comment
Это превосходно и дает мне отправную точку и то, с чем можно работать. Спасибо. - person Beau Nouvelle; 23.08.2018
comment
Без проблем. Подумайте о том, чтобы принять это как ответ, если хотите. Рад, что смог помочь. - person fulvio; 23.08.2018
comment
Я дам ему еще несколько часов, а пока попробую. - person Beau Nouvelle; 23.08.2018