2014-04-14 2 views
0

Я использую плагин phonegap-nfc из chariotsolutions. Чтение тега NFC во время работы приложения не представляет проблемы. Я зарегистрировал приложение для намерений, так что он начинается, когда приложение находится в фоновом режиме, и тег читается. Но NdefListener не уволен. Кто-нибудь знает, как получить информацию о теге, когда приложение запускается с намерением?chariotsolutions phonegap-nfc плагин умысел

ответ

0

Вам нужно добавить mime type listener, чтобы запустить nfcEvent, когда оно запускается при запуске приложения.

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

nfc.addMimeTypeListener("", app.onNfc, success, failure);

Это немного странно, но так, как это работает из-за того, как события запускаются в реализации плагина.

+0

Спасибо, это работает. Но есть одна проблема. Когда я регистрирую слушателя, обратный вызов отказа вызывается с сообщением «Недопустимый тип MIME». Но все работает, даже с этой ошибкой. Это ошибка? – user3266343

+0

Чтобы избежать ошибки в действительном типе mime, например «text/bogus», или, поскольку все работает нормально, вы можете опустить успешные и отказоустойчивые обратные вызовы. Это не отличное решение, но оно работает вокруг дефекта дизайна. – doncoleman

-1

Этот плагин прослушивает события NFC, но только уведомляет об обратных вызовах JS, которые ранее были зарегистрированы из кода Javascript. Таким образом, ваша веб-страница должна была быть загружена сначала в веб-просмотр, тогда событие загрузки кордоны должно быть запущено, и только тогда вы можете зарегистрировать обратные вызовы. Поэтому я думаю, что только плагин не решает вашу проблему.

Чтобы сделать то, что вам нужно, вы можете добавить возможности обнаружения NFC в веб-активность (используя Java API), а затем сохранить информацию о прочитанном теге в режиме persistence (снова используя Java), а затем создать настраиваемый плагин Cordova для чтения этого info от javascript в вашей точке входа JS (например, в обратном вызове события deviceready).

+0

Не могли бы вы объяснить, что вы подразумеваете под «добавлением возможностей обнаружения NFC для веб-активности»? Что такое веб-активность и где я должен добавить его? Я совершенно новичок в этом. – user3266343

+0

WebActivity - ваш класс, расширяющий CordovaActivity. Он содержит веб-просмотр, где загружается ваша веб-страница. Вы можете добавить возможности NFC в свое приложение, чтобы ваша активность открывалась при чтении тега. Но вам придется делать это обычным способом (как если бы вы разрабатывали приложение, отличное от веб-приложений). Это будет сложно сделать, чтобы это работало. Для получения дополнительной информации прочитайте [здесь] (http://developer.android.com/guide/topics/connectivity/nfc/index.html) –

+0

Плагин делает все, что вам нужно, вам не нужно изменять собственный код. См. Мой ответ. – doncoleman

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