Ionic3: невозможно объявить InAppBrowser - PullRequest
1 голос
/ 28 мая 2019

Я хочу использовать InAppBrowser, чтобы открыть все целевые пустые ссылки. Я следую документации и всегда получаю сообщение об ошибке при объявлении плагина в конструкторе:

Не удается разрешить все параметры для MyApp: (?,?,?).

Эта ошибка появляется у меня, когда я ставлю private iab: InAppBrowser на конструктор.

Мой код:

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { InAppBrowser } from '@ionic-native/in-app-browser';
import { Platform } from 'ionic-angular';


@Component({
  selector: 'page-home',
  templateUrl: 'home.html',
})


export class HomePage {

 constructor(public navCtrl: NavController, public plt: Platform, private iab: InAppBrowser) {

    this.plt.ready().then((readySource) => {
        console.log("Ready!");
        window.open = this.iab.open;
    });
  }

app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { ErrorHandler, NgModule } from '@angular/core';
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';
import { SplashScreen } from '@ionic-native/splash-screen';
import { StatusBar } from '@ionic-native/status-bar';

import { MyApp } from './app.component';
import { HomePage } from '../pages/home/home';
import { InAppBrowser } from '@ionic-native/in-app-browser';

@NgModule({
  declarations: [
    MyApp,
    HomePage
  ],
  imports: [
    BrowserModule,
    IonicModule.forRoot(MyApp)
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HomePage
  ],
  providers: [
    StatusBar,
    SplashScreen,
    InAppBrowser,
    {provide: ErrorHandler, useClass: IonicErrorHandler}
  ]
})
export class AppModule {}

Кто-то знает, что это может быть?

Спасибо!

1 Ответ

1 голос
/ 28 мая 2019

Ваш код выглядит хорошо, поэтому проблема, похоже, связана с версией @ionic-native/core, которую использует ваш проект.

Как вы можете видеть в документах , команда Ionic обновила команды Ionic Native, чтобы избежать этой ошибки:

Установка

Чтобы добавить Ionic Native в ваше приложение, выполните следующую команду для установки основного пакета: npm install @ionic-native/core@4 --save

И ...

Использование

Установите необходимые плагины Установите пакет Ionic Native для каждого плагина, который вы хотите добавить. Например, если вы хотите установить плагин Camera, вам нужно будет выполнить следующую команду:

npm install @ionic-native/camera@4 --save

Затем установите плагин, используя Cordova или Ionic CLI. Например:

ionic cordova plugin add cordova-plugin-camera

Обратите внимание на @ 4 в обеих командах. Это позволяет вам установить правильную версию зависимостей Ionic Native, даже если вы используете новый CLI.


TLDR; Так что, если вы установили плагин с помощью @ 4 , вы можете импортировать его следующим образом: import { InAppBrowser } from '@ionic-native/in-app-browser';

Если нет, возможно, вы используете более новую версию Ionic Native, поэтому вам нужно импортировать ее следующим образом: import { InAppBrowser } from '@ionic-native/in-app-browser/ngx'

...