2013-06-05 3 views
4

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

Мне не нужно публиковать это приложение в магазине приложений, это строго корпоративное приложение для моей компании.

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

Редактировать: Jailbreaking устройство на самом деле не вариант для нас. Мы должны держать устройства такими, какие они есть.

+1

Я мог быть здесь совершенно не прав, но по моему опыту это невозможно сделать, потому что приложения неактивны при перемещении на задний план. Метод Кевина, вероятно, единственный вариант для преследования. –

+0

@ldav возможно вы неправильно поняли вопрос. Он спрашивает, как получить приложение, которое не отображается на трамплине (домашние экраны). – Kevin

+0

@izuriel, Jailbreaking everone's phone! Удачи с этим! – ldav1s

ответ

4

фонового

Есть несколько способов, чтобы получить постоянное выполнение фона:

а) Бесшумный аудио, которое упоминается JRG-разработчик

б) Использованием beginBackgroundTaskWithExpirationHandler + поворот менеджера местоположения на/off (он сбросит оставшееся время до 600 секунд)

Приложение app invisible

Вы можете использовать SBAppTags в Info.plist (обратите внимание на это: How to remove app icon programatically from jail broken iPhone app?)

Это сделает ваш значок не отображается на главном экране.

+2

+1. Я думаю, что добавление 'voip' в качестве фонового режима в Info.plist также автоматически запустит приложение, когда телефон загрузится, удалив необходимость в значке приложения. Я протестировал это на своем телефоне с джейлбрейком, но я думаю, что он тоже должен работать на тюремном устройстве. – Nate

+0

Бесценное знание! –

1

Учитывая, что это невозможно сделать на не джейлбрейкиутых телефонах, я хотел бы предложить следующее:

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

  • есть это подключиться к веб-службы один раз в день, чтобы зарегистрировать ID устройства (так что вы знаете, что пользователь не удалил приложение)

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

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

Если вы считаете, что это страшная идея, это так, но это лучшее, что вы собираетесь получить на iOS прямо сейчас.

EDIT: вы можете отправлять уведомления каждый день - скажем в AM - чтобы пользователь открыл приложение, если оно не было запущено.

+0

На самом деле, я думаю, что это возможно без джейлбрейка (обратите внимание, что он не нуждается в одобрении App Store). Конечно, я не могу добавить ответ, потому что вопрос был закрыт как дубликат другого вопроса, который явно задавал что-то другое. – Nate

-2

От моего эксперимента, такого рода поведение не может быть достигнуто на iOS. Когда приложение входит в фон, оно активно только в течение небольшого определенного периода времени. После этого он переходит в состояние hybernate. Он перестает работать. Таким образом, поведение, о котором вы сказали, не может быть достигнуто без злоупотребления рабочим процессом iOS. Вот почему некоторые называют многозадачность iOS как ненадежную многозадачность. Это может помочь только джейлбрейк. Это было для одного случая. Второй, когда приложение не видно на главном экране, снова невозможно. Это должно быть на трамплине, чтобы бежать.

+0

IMHO, «невозможно» и «взломанный» - это две разные вещи ... Я думаю, автор знает, что это не то, для чего предназначен iOS, и на самом деле это не очень хорошая идея ... но эй, это StackOverflow и «не очень хорошая идея» означает «это можно сделать» (вы просто не должны этого делать) :) –

2

два метода:

  1. Jailbreak. Jailbroken iPhone - это, по сути, Mac, и вы можете использовать все трюки программирования для Mac UNIX - создать демона (вы даже можете попросить launchd сделать это) или что-то в этом роде. Вы можете настроить собственный источник Cydia. Обратитесь к веб-сайту Saurik за пошаговое руководство и настройте экспериментальный сервер с помощью Ubuntu (который также использовал apt)

  2. Возможно, возможен путь без джейлбрейка, но это будет зависеть от того, что делает ваше приложение. Вы можете попробовать использовать корпоративные push-уведомления.

3

Я понятия не имею, как вы можете решать not be visible on the home screen критерии, но являются определенные услуги, которые разрешено работать в фоновом режиме постоянно, а именно:

  • Фоновый звук (даже тихий звук)

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

Хотя маловероятно/очень сложно пройти процесс обзора, по какой-то причине вам необходимо (попытаться) опубликовать это приложение в App Store, некоторые приложения даже доступны в App Store, которые принимают преимущество этого взлома, например, PasteBot.

Вы обязательно должны прочитать их рецензию здесь о получении функциональности вырезать и вставить их приложения, чтобы работать в фоновом режиме:

http://tapbots.com/blog/pastebot/pastebot-music-in-background

Другой идея вне коробки, почему а не использовать Android-устройства вместо, которые поддерживают многозадачность?

+0

Вопрос о том, что ему не нужно одобрение магазина приложений. Значение SBAppTags в Info.plist скроет значок (см. Ответ Виктора), и режим 'voip' будет автоматически запускать приложение. – Nate

Смежные вопросы