【问题标题】:How can I add a Cordova plugin into Ionic 2 project?如何将 Cordova 插件添加到 Ionic 2 项目中?
【发布时间】:2016-06-07 09:46:12
【问题描述】:

例如,如果我想使用 Cordova 提供的 Piwik 插件,如何将它集成到我的 Ionic 2 项目中?

特别是如何在项目中调用插件。

例如 如果我已经添加了一个名为 Plugin with Cordova 的插件,我该如何调用它?

在文件Home.ts中,如何实例化它?

let plugin = new Plugin();

不起作用。我的编辑会说Plugin not found 之类的话。

【问题讨论】:

    标签: cordova ionic-framework cordova-plugins ionic2 matomo


    【解决方案1】:

    你应该做ionic plugin add NAME_OF_THE_PLUGIN 比你应该能够正常使用插件暴露的对象。如果您正在使用 typescript 并且不想让它抱怨,您可以写:declare var name_of_the_variable 这样它就不会抛出错误。 ionic 还会将插件添加到其插件列表中,因此下次您添加新平台或 ionic 状态重置项目时,它将自动获取插件。

    您还可以了解依赖注入并手动注入它@Inject('name_of_variable'),然后在所有类中使用它。

    关于 DI 的更多信息:https://angular.io/docs/ts/latest/guide/dependency-injection.html

    编辑:对于一些 cordova 插件,ionic 提供了一些您可以使用的“包装器”。您可以在此处阅读更多相关信息:http://www.joshmorony.com/using-cordova-plugins-in-ionic-2-with-ionic-native/

    此外,如果您在角度检测更改时遇到问题(我遇到过这样的问题),您可以将插件中的调用包装到 ngZone.run(() => { ... } ) 中。你还需要让angular在构造函数constructor(ngZone: NgZone)中为你提供当前区域的实例@

    希望对你有帮助

    【讨论】:

    • 我的意思是,如何实例化或新建插件对象?
    • 您不需要调用 new Plugin(),正如我从文档中看到的,插件公开了一个变量 piwik。您不需要实例化插件,cordova 会为您执行此操作,因此变量 pikwik 从一开始就存在,就像浏览器提供的其他一些变量一样,例如 documentwindow..
    • 我应该导入什么?因为这里(github.com/kriserickson/cordova-piwik-plugin/blob/master/…)没有告诉我怎么用piwik.startTracker(),如果我调用这个函数,会导致object not found
    • 在 platform.ready 处理程序内部调用 console.log(piwik) 并检查它是否存在。您不需要导入任何东西,cordova 将对象公开为无处不在的全局对象
    • 问题是总是有异常:piwik is not defined
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    相关资源
    最近更新 更多