#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: (