如果你来到这里却没有任何效果,别担心,这不是你的错。
您可能已经按照官方文档执行了这两个命令来安装插件:
$ ionic cordova plugin add <your plugin>
$ npm install --save @ionic-native/<your plugin>
您还添加了该插件app-module.ts
file:
@NgModule({
...
providers: [
...
Your plugin
...
]
...
})
您已经在调用您的插件,该插件已正确导入并注入到调用类的构造函数中。
您甚至正在等待 deviceReady 事件来开始使用您的插件:
this.platform.ready().then(() => {
//Use plugin now
});
然后你仍然得到plugin_not_installed
错误。可能发生的一件事是,尽管节点和配置文件有这个多 MB 的集群,但该插件是最近在项目创建时添加的。当您添加插件时,它已下载存储库中可用的最新版本(!!!),并且对于项目中安装的某些平台(android 或 ios),此插件需要比您现在拥有的 Cordova 版本更高的版本。再次输入第一个命令:
$ ionic cordova plugin add <your plugin>
并仔细查看输出。看起来一切顺利,但如果你向上滚动,你可能会发现一个错误,指出你下载的这个插件需要 Cordova android(或 ios)版本 X,而你有 Cordova android(或 ios)版本 Y,且 Y
Fetching plugin "phonegap-plugin-push@~2.1.0" via npm
Installing "phonegap-plugin-push" at "2.1.0" for android
Plugin doesn't support this project's cordova version. cordova: 7.0.2, failed version requirement: >=7.1.0
Skipping 'phonegap-plugin-push' for android
更糟糕的是,该插件已部分添加,并且可能存在于根插件文件夹中,并且config.xml
,并列于cordova plugin list
命令输出,但它不存在于platform_www\plugins
folder.
如果是这种情况,您需要更新有问题的平台。和cordova platform update
已被弃用,因此您现在需要执行以下操作:
ionic cordova platform remove android
ionic cordova platform add android@X
其中 X 是插件需要的版本或更高版本,例如“7.1.0”。
现在您需要再次正确安装插件:
$ ionic cordova plugin add <your plugin>
$ npm install --save @ionic-native/<your plugin>
我们还没有完成。在 Android 设备上运行时,您现在可能会收到此错误:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library [:CordovaLib]
更新平台后,部分新代码需要更高的新minSDK。对于 ionic,您需要在config.xml
:
<preference name="android-minSdkVersion" value="19" />
希望你现在一切都好。 Cordova 在依赖管理方面确实很糟糕。此外,文档的编写方式就好像每个人都拥有最新的一切一样。