ионная ошибка 2 кордова недоступна

Я пытаюсь использовать плагин Cordova GooglePlus в новом проекте ionic 2 (последняя версия ionic2), но всегда сталкиваюсь с ошибками, связанными с Cordova. Плагин правильно установлен и отображается в папке плагинов.

Один из подходов, которые я попробовал, заключается в следующем:

import { GooglePlus } from "ionic-native";

а потом

GooglePlus.login().then(...)

Метод входа в систему выполняется, но всегда выдает ошибку, говоря"cordova_not_available"

Я хочу протестировать приложение сionic serve в моей системе Windows, прежде чем развернуть его на моем телефоне Android. Как я могу сделать Cordova доступным на локальном сервере? Из поиска я понимаю, что cordova.js генерируется и всегда включается в пакет развертывания для устройства.

Другой ap, proach, который я пробовал, использует

window.plugins.googleplus.login(...)

Но этот подход не проходит через компилятор машинописного текста, который ничего не знает о свойстве плагинов в объекте windows.

Как я могу это исправить?

Ответы на вопрос(5)

Иногда использование ionic cordova run не лучший вариант, так как компиляция ваших изменений занимает много времени.

В моем случае причиной была проблема с плагином FCM. Он не может работать в браузере, если я использую ионную подачу. Так как мой код был внутри app.component.ts, мне было легко обойти эту проблему. Я просто использовал следующую строку:

  if (platform.is('cordova')) 
     {  this.fcmx.onTokenRefresh().subscribe(token => { 
     this.pushNoti.storeNewToken(token); }); }

Используя platform.is ('cordova'), вы можете предотвратить код, вызывающий проблемы с запуском в браузере.

С помощьюionic serve отключает все плагины Cordova, потому что он не работает на устройстве.

Скорее использоватьionic cordova run android Это запустит эмулятор андроида, который должен позволить всем плагинам Cordova функционировать

Я также сталкивался со вторым подходом, но синтаксис должен бытьwindows['plugins'].googleplus.login(...)

 Ash06 мар. 2018 г., 08:51
Похоже, теперь это могло измениться на: ionic cordova run android

Если вы хотите, чтобы плагин работал для браузера, вы должны добавитьplatform browser и запустить его:

ionic cordova platform add browser

и запустить его:

ionic cordova run browser

вместоionic serve.

 Mohan23 нояб. 2018 г., 09:57
@AjayGupta - Возможно ли использовать --livereload с помощью браузера?
 Jason Krs27 апр. 2018 г., 14:44
Да, это не было добавлено ... Я прокомментировал ответ, прежде чем попробовать то, что вы сказали ... мой плохой ...
 Deepak Yadav08 авг. 2018 г., 11:24
если у кого-то возникли проблемы, после этого, пожалуйста, убедитесь, что вы нажали 'npm install' после первой команды здесь. а затем запустите браузер.
 Ajay Gupta27 апр. 2018 г., 13:11
@JasonKrs убедитесь, что добавлена ​​платформа браузера, я хочу сказать, проверьте, есть ли папка браузера, созданная в папке платформы ??? или попробуйте удалить и добавить его снова.
 Jason Krs26 апр. 2018 г., 18:35
я получил404 /screen в моей консоли, когда я сделал вторую команду ...

Просто запустите после подключения устройства Android

ionic cordova run android

убедитесь, что вы исправили ключ карты Google

Эта ошибка обычно возникает, когда вы запускаете приложение в Chrome, используяionic serve Это нормально, так как в браузере Cordova нет собственных компонентов, но они также появляются на эмуляторе и устройствах, когда используемый вами ионный родной плагин был добавлен, даже если вы добавили для него ионный плагин.

Например, если выиспользуя родной тост

тогда вам нужно добавить правильные ионные зависимости:

ionic plugin add cordova-plugin-x-toast --save

но вам также нужно добавить кордовые зависимости:

cordova plugin add cordova-plugin-x-toast --save

Если вы забудете добавить более поздний плагин Cordova, вы получите сообщение об ошибке:

Runtime Error Uncaught(in promise): cordova_not_available

Что может быть сложно найти причину.

Как только вы добавите ионные и кордовые зависимости, вы сможете использовать его.

Убедитесь, что вы импортировали его:

import { Toast } from 'ionic-native';

внедрить платформу в конструктор:

constructor(public navCtrl: NavController, private platform: Platform) {...

затем используйте нативный элемент:

this.platform.ready().then(() =>
      Toast.show("Successfull", '5000', 'center')
        .subscribe(
        toast => {
          console.log(toast);
        }
      ));
 groo12 дек. 2016 г., 08:58
@kolexinfos - он работает только при работе с andon run android без опции -lc, при использовании andic serve или ionic run android -lc да, ошибка все еще существует, так как плагины Cordova недоступны в браузере. То, что я делаю с android, - это подайте в суд на ionic run android, чтобы потом увидеть журналы / консоль. Я привязываю журналы logcat с помощью: adb logcat | grep -i "console", чтобы я все еще мог следить за журналами.
 kolexinfos11 дек. 2016 г., 11:52
По-прежнему получаю ту же ошибку даже после всей этой установки, и я заметил, что CLI заметил, что плагин был установлен уже на работающем плагине cordova add cordova-plugin-x-toast --save
 groo01 дек. 2016 г., 20:36
Я заметил, что ошибка: Runtime Error Uncaught (в обещании): cordova_not_available по-прежнему отображается несколько раз при запуске эмулятора Android на Linux ... пока не уверен, что вызывает его, поскольку он не согласуется, иногда это происходит, другие работают.
 kolexinfos12 дек. 2016 г., 09:03
Я знаю, что Cordova недоступна в браузере, и я говорю, что она работает даже на устройстве, которое выдает Cordova_not_unavailable. Я вижу это с помощью консоли удаленного устройства Google Chrome, и тост не отображается.
 groo12 дек. 2016 г., 10:10
@kolexinfos - когда вы упоминаете, что используете консоль удаленного устройства Google chrome, она не будет работать .. вы, вероятно, используете livereload, и в этом случае плагины Cordova недоступны. Попробуйте запустить только на эмуляторе устройства, и НЕ подключайте консоль удаленного устройства Chrome. Для просмотра журналов используйте adb logcat (если android): adb logcat | grep -i "console"

Ваш ответ на вопрос