Ionic: плагин cordova-plugin-ionic не устанавливается, когда "ionic plugin add" говорит, что он уже установлен
Я видел другие подобные вопросы, но все еще в замешательстве. Когда я запускаю свое приложение, используя ionic serve
моя консоль говорит мне:
ionic-pro.min.js:1 the cordova-plugin-ionic plugin is not installed. Install it for better device information for runtime errors.
но когда я бегу
cordova plugin add cordova-plugin-ionic --variable APP_ID=app_id --variable CHANNEL_NAME=Production
это говорит:
Plugin "cordova-plugin-ionic" already installed on android.
Plugin "cordova-plugin-ionic" already installed on browser.
Plugin "cordova-plugin-ionic" already installed on ios.
У меня такое ощущение, что это связано с одной из моих других проблем, которая заключается в том, что служба развертывания Ionic Pro работает не так, как ожидалось.
Вот мое окружение:
cli packages: (/usr/local/lib/node_modules)
@ionic/cli-utils : 1.14.0
ionic (Ionic CLI) : 3.14.0
global packages:
cordova (Cordova CLI) : 7.0.1
local packages:
@ionic/app-scripts : 2.1.4
Cordova Platforms : android 6.1.2 browser 4.1.0 ios 4.1.1
Ionic Framework : ionic-angular 3.0.1
System:
ios-deploy : 1.9.1
ios-sim : 5.0.13
Node : v6.11.0
npm : 2.15.12
OS : macOS Sierra
Xcode : Xcode 9.0.1 Build version 9A1004
Misc:
backend : pro
2 ответа
В вашем файле app.component.ts:
объявите значение корневой страницы после готовности платформы, как показано ниже.
export class MyApp {
rootPage:any;
constructor(platform: Platform, statusBar: StatusBar,splashScreen: SplashScreen) {
platform.ready().then(() => {
this.rootPage = HomePage;
statusBar.styleDefault();
splashScreen.hide();
});
}
}
Я исправил эту ионную ошибку про, проверив cordova
handleError(err: any): void {
if (this.platform.is('cordova')) {
// This will only print when on iOS
console.log('I am an iOS device!');
Pro.monitoring.handleNewError(err);
// Remove this if you want to disable Ionic's auto exception handling
// in development mode.
this.ionicErrorHandler && this.ionicErrorHandler.handleError(err);
} }
И добавить к платформе готово:
this.platform.ready().then(() => {
/** Pro handlings */
Pro.init('7dafc58e', {
appVersion: '0.0.1'
})
try {
this.ionicErrorHandler = injector.get(IonicErrorHandler);
} catch (e) {
// Unable to get the IonicErrorHandler provider, ensure
// IonicErrorHandler has been added to the providers list below
}
this.AppCenterCrashes.setEnabled(true).then(() => {
this.AppCenterCrashes.lastSessionCrashReport().then(report => {
Pro.monitoring.log(JSON.stringify({ report: report }), { level: 'error' })
});
});
});
Я думаю, что лучшим вариантом будет проверить, если платформа cordova
а затем добавить его в функцию.