我想使用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 {}
有人知道这可能是什么吗?
谢谢!
答案 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'