Ionic3:无法声明InAppBrowser

时间:2019-05-28 14:14:18

标签: ionic-framework ionic3 inappbrowser

我想使用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 个答案:

答案 0 :(得分:1)

您的代码看起来不错,因此问题似乎是由于您的项目使用的@ionic-native/core版本。

您会看到 in the docs ,为了避免此错误,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 。这样一来,即使您使用的是新的CLI,也可以安装正确版本的Ionic Native依赖项。


TLDR; ,因此,如果您使用 @ 4 安装了插件,则可以这样导入:import { InAppBrowser } from '@ionic-native/in-app-browser';

否则,您可能正在使用Ionic Native的较新版本,因此需要像这样导入:import { InAppBrowser } from '@ionic-native/in-app-browser/ngx'