Вывести приложение на передний план
Есть ли способ вывести мое приложение на передний план, когда закончится таймер? Это для приложения типа киоска, которое отображает некоторую информацию в различных точках во время сеанса пользователя.
Это для приложения, которое будет установлено только на наших корпоративных устройствах, поэтому не будет передано в Apple на утверждение. Я также открываюсь для изучения вариантов джейлбрейка.
Я буду признателен за любую помощь / советы, которые вы, ребята, можете предоставить. Благодарю.
2 ответа
Да, вы можете технически использовать Xcode для разработки джейлбрейка (но вам это не нужно). Если вы хотите, чтобы ваше приложение было установлено вне обычной изолированной программной среды и в / Applications /, то вы должны собрать Xcode без подписи кода, поддельного кода (или использовать самозаверяющий сертификат), а затем скопировать / установить приложение в ваше устройство, используя scp
или что-то подобное (может быть, есть сценарий для этого).
Вы также можете поискать в Google такие инструменты, как "Theos", "Logos" или "iOSOpenDev". Больше здесь
Также посмотрите эту страницу для получения информации о подписи поддельного кода с помощью Xcode.
С точки зрения вывода приложения на передний план, есть по крайней мере несколько способов справиться с этим:
Можно было бы использовать Cydia для установки (бесплатной) утилиты open
, С open
Вы можете выполнить вызов командной строки, чтобы открыть любое приложение, используя его идентификатор пакета (например, open com.mycompany.MyAppName
). Если вы хотите сделать это программно, выполните эту команду в system()
вызов:
#import <stdlib.h>
int returnCode = system("/usr/bin/open com.mycompany.MyAppName");
Другой вариант - увидеть ответ от @WrightsCS. Обязательно прочитайте также комментарии о том, куда это идет.
Обновление: с точки зрения перевода вашего приложения в фоновый режим, вы можете полностью убить его exit(0)
или же [[UIApplication sharedApplication] terminateWithSuccess]
, Или посмотрите этот ответ, чтобы найти решение для программного моделирования нажатия кнопки "Домой", которое отправит приложение в фоновый режим, не убивая его.
Вы не сможете использовать NSTimer
потому что таймеры не работают, пока ваше приложение находится в фоновом режиме. Тем не менее, вы можете использовать блоки GCD для запуска фоновой работы и сделать system()
позвонить с open
чтобы вернуть вас на передний план.
Посмотрите этот ответ, вероятно, прокручивая всю страницу до конца.
или посмотрите на этот похожий ответ, который был фактически размещен в нижней части вопроса
Возможности джейлбрейка для вывода вашего приложения на передний план:
Подключитесь к SpringBoard с помощью MobileSubstrate. Вы можете найти классы и методы с многообещающими именами, такими как [SBApplicationIcon launch]
а также [SBApplication launch]
, Другая возможность использования SBSLaunchApplicationWithIdentifier()
из частного фреймворка SpringBoardServices.
Варианты приостановки приложения:
Скорее всего, вы можете сделать это снова, используя MobileSubstrate, чтобы SpringBoard закрыл для вас определенное приложение. Может быть, вы можете смоделировать нажатие кнопки домой, позвонив [SBUIController handleMenuTap]
или что-то подобное.