2016-08-03 2 views
19

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

Один подход, который я попытался это:

import { GooglePlus } from "ionic-native"; 

, а затем

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

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

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

Другого подход, который я попытался использую

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

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

Как это исправить?

ответ

5

Использование ionic serve отключает все плагины cordova, поскольку оно не работает на устройстве.

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

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

+0

Похоже, это, возможно, изменилось сейчас: ionic cordova run android – Ash

14

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

Например, если вы using native Toast

, то вам необходимо добавить соответствующие ионные зависимости:

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

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

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); 
     } 
    )); 
+0

Я заметил, что ошибка: Runtime Error Uncaught (в обещании): cordova_not_available все еще показывает несколько раз при запуске эмулятора Android на linux .. пока не уверены, какие причины так как это непротиворечиво, иногда бывает, что другие работают. –

+0

По-прежнему получаю такую ​​же ошибку даже после всей этой установки, и я заметил, что CLI заметил, что плагин уже установлен на запущенном кордовом плагине add cordova-plugin-x-toast --save – kolexinfos

+0

@kolexinfos - он работает только при работе с ионный бегущий андроид без опции -lc, при использовании ионного источника или ионного бегущего андроида -lc. Да, все еще существует ошибка, поскольку плагины cordova недоступны в браузере. Что я делаю с андроидом - это аннулировать ионный бег андроида, а затем иметь возможность видеть журналы/консоль. Я хвост logcat журналы с: adb logcat | grep -i "console", поэтому я все еще могу следить за журналами. –

25

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

ionic cordova platform add browser 

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

ionic cordova run browser 

вместо ionic serve.