Приложение Titanium iOS автоматически перезапускается в фоновом режиме после удаления из фона

#ios7 #ibeacon #titanium-alloy

#ios7 #ibeacon #титановый сплав

Вопрос:

Я работаю в приложении, которое обнаруживает любые маяки поблизости и выдает и оповещает в виде локальных уведомлений для iOS. Я использовал библиотеку TiBeacons для titanium, которая выполнила свою работу, но сейчас я столкнулся с проблемой, из-за которой мне нужно поддерживать работу приложения, даже когда пользователь удаляет приложение из фона.

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

Ответ №1:

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

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

Вы можете попробовать активировать свое приложение, получив уведомление от службы центра уведомлений Apple:

Цель службы Apple Notification Center (ANCS) — предоставить аксессуарам Bluetooth (которые подключаются к устройствам iOS по каналу Bluetooth с низким энергопотреблением) простой и удобный способ доступа ко многим видам уведомлений, которые генерируются на устройствах iOS.

Комментарии:

1. @daniula — я немного смущен этим ответом, поскольку существует множество приложений, которые получают локальные уведомления, даже если они удалены из фона. Например, приложение iBeacon от radius networks работает.

2. Возможно, я не понимаю вашего вопроса, но приложение iOS может находиться в 5 разных состояниях , и когда кто-то удаляет его из фона, оно быстро переходит в состояние ожидания, а затем не запускается. Единственный способ снова начать работу — получить уведомление. Я обновлю свой ответ соответствующей ссылкой.

3. Спасибо за ваш ответ. Это то, что я ищу, но я не понимаю, как реализовать то же самое с помощью titanium, поскольку мне нужно показывать локальное уведомление, когда активированное Bluetooth устройство iphone находится рядом с приложением, даже если приложение удалено из фона.

4. CoreLocation абсолютно точно может запустить приложение в фоновом режиме при обнаружении ibeacon, даже после удаления из диспетчера задач.

5. Библиотека, которую я использую, уже использует ее. github.com/jbeuckm/TiBeacons/blob/master/Classes /…

Ответ №2:

Возможность обнаружения iBeacons после завершения работы приложения в переключателе задач была добавлена только в iOS 7.1. Кроме того, я считаю, что эта функциональность требует, чтобы мониторинг маяка был настроен с основным AppDelegate объектом приложения в качестве CoreLocation делегата. Я мало что знаю о Titanium, но, взглянув на источник, кажется, что он этого не делает, а вместо этого использует другой класс в качестве CoreLocation делегата. Это может объяснить, почему это не работает для вас.

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

Поскольку я не эксперт Titanium, было бы лучше, если бы кто-то, кто знает об этом больше, мог подтвердить или опровергнуть мои подозрения.

Комментарии:

1. Да, я использую iOS 7.1. На самом деле проблема с titanium заключается в том, что файлы сборки создаются во время выполнения, а сборка, созданная с использованием titanium, похоже, не содержит много информации о том, где находятся классы, связанные с CoreLocation, которые я не смог найти при выполнении глобального поиска. следовательно, я не могу выполнить какие-либодля отладки базовый код написан на javascript: (