Как исправить проблему из-за предоставления «@ionic-native/AppVersion» или «.../ngx» и наличия исключения при вызове любых методов AppVersion?

Я добавил собственный плагин AppVersion Ionic (https://ionicframework.com/docs/native/app-version#usage). После попытки предоставить его в мой app.module.ts у меня возникла ошибка при компиляции, например «Нет провайдера для AppVersion» ...

Я думаю, что, возможно, из Ionic 4/последней версии AppVersion мне нужно следовать этим инструкциям: 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",
...

При этом я могу нормально импортировать плагин в свой app.module.ts (import AppVersion from '@ionic-native/AppVersion'), и все в порядке.

Есть версии моего стека:

Ионный:

ionic (Ionic CLI): 4.1.2 (/usr/local/lib/node_modules/ionic) Ionic Framework: ионно-угловой 3.9.2 @ionic/приложения-скрипты: 3.1.11

Кордова:

кордова (CLI Cordova): 8.1.1 ([email protected]) Платформы 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-развертывание: 1.9.4 NodeJS: v8.12.0 (/usr/local/bin/узел) нпм: 6.4.1 ОС: макОС Xcode: Xcode 10.1 Версия сборки 10B61

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
3
0
4 226
1

Ответы 1

Понизьте плагин текущей версии приложения, чтобы сделать это, сначала удалите этот плагин, а затем снова установите этот плагин, например:

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

2) npm i @ionic-native/[email protected]

Спасибо чувак. Для тех, кто найдет тот же ответ, если вы используете Ionic v3, убедитесь, что вы следуете инструкциям по установке, приведенным в документах v3: ionicframework.com/docs/v3/native/версия приложения. Они специально заявляют об установке с использованием npm install --save @ionic-native/app-version@4.

Mike Postma 13.02.2019 06:22

Другие вопросы по теме