2016-12-11 16 views
2

Я пытаюсь использовать этот плагин cordova https://github.com/honza889/cordova-plugin-kiosk в приложении Ionic v2.Как использовать плагины non native cordova в ionic 2

В принципе после установки плагина в кордове с cordova plugin add https://github.com/honza889/cordova-plugin-kiosk.git плагин включен и работает.

Но я не могу найти способ использовать методы плагина.

window.plugins неопределен

и cordova не определен.

Я попытался импортировать плагин в app.component.ts, но я не могу понять правильный путь.

Кто-нибудь знает, как использовать неместные плагины в приложении Ionic V2 (документация и ресурсы устарели или относятся к родным плагинам).

Заранее спасибо

+0

Andreas GASSMANN очень хорошо. Для тех, кто задается вопросом, как получить доступ к 'window.plugins. {Plugin-name}. {Property-or-method}', несмотря на ошибки компиляции: вы можете использовать 'window ['plugins'] ...' –

ответ

6

Вы должны быть в состоянии просто получить доступ к переменной KioskPlugin в вашем коде. Машинопись компилятор не будет знать, что переменная, так что вы должны объявить его первым:

declare let KioskPlugin: any; 

@Component({ 
    ... 
}) 
export class TestPage { 

    ... 

    exitKiosk() { 
    KioskPlugin.exitKiosk(); 
    } 
} 
+0

Это то, что я скучал. Я не знаком с машинописным текстом. Я играл с плагином в 'chrome: // проверять консоль', и это не соответствовало моим потребностям. Я в конечном итоге пишу сам, так что ваше понимание очень ценится, спасибо. –

+0

Я пробовал это так, как указано выше, но все еще не работает, может кто-то мне помочь. следующая проблема: file: ///android_asset/www/build/polyfills.js: строка 3: ошибка: нечистота (в обещании): ошибка: ошибка ./MyApp класс MyApp - встроенный шаблон: 0: 0 вызван: KioskPlugin не определен ReferenceError: KioskPlugin не определен – sakshi

+0

Вы добавили 'declare let KioskPlugin: any;' в начало файла класса MyApp? –

2

У меня была аналогичная проблема, пытаясь получить доступ к пользовательскому плагин, и я наконец-то решена благодаря этому сообщению: https://github.com/ionic-team/ionic-native/issues/525

Добавление declare var cordova: any; вместо моего пользовательского плагина var, и вызов через cordova.plugins.myCustomPlugin.myFunction() сделал трюк.

Действительно, зависит от настроек в файле plugin.xml плагина, который вы хотите использовать. Более конкретно на теге <clobbers target="variable.MyCustomPlugin" />, который определяет, куда будут экспортироваться файлы js plugin. Другие вешать, например, будет declare var window: any;, а затем window.myCustomPlugin.myFunction()

Надеется, что это помогает;) ответу работе

+0

Большое вам спасибо! Это сработало для меня! – Genarito