Вывести приложение на передний план

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

Это для приложения, которое будет установлено только на наших корпоративных устройствах, поэтому не будет передано в 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] или что-то подобное.

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