Onsen 2 - Monaca CLI - плагины Cordova странное поведение

Недавно я начал использовать Onsen-UI 2 и инструменты Monaca CLI. Это очень классный инструмент, очень полезный. Хотя есть один или два недостатка, которые я подобрал, хотя я думаю, что смогу решить большинство из них, посмотрев руководства по миграции.

Самая большая проблема, которую я не могу понять, это плагины. Я создаю свое приложение (Plain JS Onsen 2.0) с помощью CLI Monaca, а затем продолжаю использовать обычные команды cordova для добавления моих платформ и плагинов. Не спрашивай меня почему, мне просто так нравится. При сборке для iOS я получаю статус "Успешно" и мое приложение работает нормально в эмуляторе и на моем устройстве. Проблема в том, когда я пытаюсь использовать функции, предоставляемые плагинами.

Я попытался реализовать плагин Card.io (установлен успешно), и мое приложение запускается очень хорошо. У меня есть функция, которая запускается на устройстве, готовом проверить, работает ли плагин, функция "canScan", которая показывает предупреждение с результатом. Однако, хотя устройство готово, ничего не происходит. Странное поведение таково: когда я помещаю приложение в фоновый режим или открываю окно многозадачности (дважды нажмите кнопку "Домой"), а затем возвращаюсь в приложение, появляется предупреждение с сообщением, которое я могу сканировать. После получения этого сообщения я смогу нажать кнопку, и должен появиться интерфейс Card.io, но, опять же, ничего не происходит, когда я нажимаю кнопку. Только если я сделаю то же, что и раньше (войдите в многозадачность и вернитесь в приложение), появится интерфейс Card.io, но приложение зависнет.

Я думал, что была проблема с моей реализацией плагина, т.е. мой код неверен, но это происходит и с другими плагинами.

Есть идеи о том, что здесь происходит?

Это моя функция "onDeviceReady":

document.addEventListener('deviceready', function() {
    CardIO.canScan(onCardIOCheck);
}, false);

Вот как я установил плагин:

$ cordova plugin add <plugin-name>

Я также попытался установить плагин с помощью инструментов Monaca:

$ monaca plugin add <plugin-name>

Любая помощь или совет будут с благодарностью!

1 ответ

Решение

Переместите функцию onDeviceReady в отдельный файл.js и посмотрите, решит ли это проблему.

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