解决-如何解决由于提供'@ ionic-native / AppVersion'或'... / ngx'并在调用任何AppVersion方法时出现异常而导致的问题?

Max*_*gus 2 ionic-framework ionic3 angular ionic-plugins

我已经添加了AppVersion Ionic本机插件(https://ionicframework.com/docs/native/app-version#usage)。在尝试将其提供给我后,app.module.ts我在编译时出现错误,例如“ AppVersion不存在提供程序” ...

我认为可能是从AppVersion的Ionic 4 /最新版本开始,我需要按照以下说明进行操作:https ://ionicframework.com/docs/native/#Add_Plugins_to_Your_App_Module,它表示要app.module.ts使用这样的导入将插件提供给:

import AppVersion from '@ionic-native/AppVersion/ngx'

代码编译。完善。但是可悲的是,在运行时我遇到一个错误,它说:

TypeError: Object(__WEBPACK_IMPORTED_MODULE_1__ionic_native_core__["cordova"]) is not a function. (In 'Object(__WEBPACK_IMPORTED_MODULE_1__ionic_native_core__["cordova"])(this, "getPackageName", {}, arguments)', 'Object(__WEBPACK_IMPORTED_MODULE_1__ionic_native_core__["cordova"])' is an instance of Object) getPackageName — index.js:28...

因此,对于这个耗时的问题,我的解决方案是获取适用于另一个项目的AppVersion的保留版本:

package.json

...
"@ionic-native/app-version": "^4.18.0",
...
"cordova-plugin-app-version": "0.1.9",
...
Run Code Online (Sandbox Code Playgroud)

这样,我可以正常将插件导入到我的app.module.tsimport AppVersion from '@ionic-native/AppVersion')中,一切正常。

有我的堆栈的版本:

离子性:

ionic(Ionic CLI):4.1.2(/ usr / local / lib / node_modules / ionic)Ionic框架:ionic-angular 3.9.2 @ ionic / app-scripts:3.1.11

科尔多瓦:

cordova(Cordova CLI):8.1.1(cordova-lib@8.1.0)Cordova平台:android 7.1.1,ios 4.5.5 Cordova插件:cordova-plugin-ionic-keyboard 2.1.3,cordova-plugin-ionic- webview 1.2.1,(和其他8个插件)

系统:

Android SDK工具:26.1.1(/ Users / maximedesogus / Library / Android / sdk /)ios-deploy:1.9.4 NodeJS:v8.12.0(/ usr / local / bin / node)npm:6.4.1 OS:macOS Xcode:Xcode 10.1 Build版本10B61

小智 5

降级您当前的App版本插件,要先删除该插件,然后再安装该插件,例如:

1) ionic cordova plugin add cordova-plugin-app-version 

2) npm i @ionic-native/app-version@4.8.0
Run Code Online (Sandbox Code Playgroud)