【问题标题】:How to use non native cordova plugins in ionic 2如何在 ionic 2 中使用非原生 cordova 插件
【发布时间】:2016-12-11 14:45:16
【问题描述】:

我正在尝试在 Ionic v2 应用程序中使用此 cordova 插件 https://github.com/honza889/cordova-plugin-kiosk

基本上在使用cordova plugin add https://github.com/honza889/cordova-plugin-kiosk.git 在cordova 中安装插件后,插件已启用并正常工作。

但我找不到使用插件方法的方法。

window.plugins 未定义

cordova 未定义。

我尝试在 app.component.ts 中导入插件,但找不到正确的路径。

有谁知道在 Ionic V2 应用程序中使用非原生插件的方法(文档和资源已过时或引用原生插件)。

提前致谢

【问题讨论】:

  • Andreas Gassmann 的回答效果很好。对于那些想知道如何访问window.plugins.{plugin-name}.{property-or-method} 的人,尽管有编译错误:您可以使用window['plugins']...

标签: cordova plugins ionic2


【解决方案1】:

您应该能够简单地访问代码中的KioskPlugin 变量。 typescript 编译器不会知道那个变量,所以你必须先声明它:

declare let KioskPlugin: any;

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

  ...

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

【讨论】:

  • 这就是我所缺少的。我对打字稿不太熟悉。我玩过chrome://inspect console 中的插件,它不符合我的需要。最后是我自己写的,非常感谢您的见解,谢谢。
  • 我已经按照上面指定的方式进行了尝试,但仍然无法正常工作,有人可以帮助我。以下是问题:file:///android_asset/www/build/polyfills.js:第 3 行:错误:未捕获(在承诺中):错误:./MyApp 类 MyApp 中的错误 - 内联模板:0:0 由以下原因引起: KioskPlugin 未定义 ReferenceError: KioskPlugin is not defined
  • 您是否在 MyApp 类文件的开头添加了declare let KioskPlugin: any;
  • 我已经做到了,仍然没有改变,为什么 ionic 2 我们在集成cordova插件(非离子原生插件)时出现问题我也在致力于其他插件集成npmjs.com/package/cordova-plugin-firebase即使这也不起作用.
  • Uncaught(in promise) 错误消息我仍然遇到同样的问题。
【解决方案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 文件将被导出到哪里。例如,另一种可能性是declare var window: any;,然后是window.myCustomPlugin.myFunction()

希望对你有帮助;)

【讨论】:

    猜你喜欢
    • 2019-02-05
    • 2021-11-30
    • 2018-01-01
    • 2017-07-04
    • 2017-11-22
    • 2016-11-02
    • 2016-12-15
    • 2017-12-21
    相关资源
    最近更新 更多