Ionic - InAppBrowser 继续打开系统外部网络浏览器而不是应用内浏览器
Ionic - InAppBrowser keep opening system external web browser not in-app one
在 Ionic App 页面(ionic serve
的 localhost:8100 页面),开发者控制台记录了警告
Native: InAppBrowser is not installed or you are running on a browser. Falling back to window.open.
在网络浏览器中发生的事情实际上在我在设备上测试时也发生过(ionic cap run android
)。该网站是在设备的默认外部网络浏览器上打开的,而不是应用程序的“应用程序内”网络浏览器。我想是因为 InAppBrowser
在构建期间从未安装到设备上。但是我不知道为什么。
以下是我的代码的最简化的可行版本。如果需要更多,请随时询问。
main.ts
if (environment.production) enableProdMode();
platformBrowserDynamic().bootstrapModule(App).catch(err => console.log(err));
app.ts
@NgModule({
declarations: [Comp],
entryComponents: [],
imports: [
IonicModule, CommonModule, FormsModule, BrowserModule, IonicModule.forRoot(), Routing
],
providers: [
InAppBrowser, { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
],
bootstrap: [Comp]
})
export class App {}
routing.ts
const routes: Routes = [
{ path: '', loadChildren: () => import('./home').then(m => m.Home) }
];
@NgModule({
imports: [RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })],
exports: [RouterModule]
})
export class Routing {}
component.ts
@Component({
selector: 'app-root', templateUrl: 'component.html', styleUrls: ['component.scss'],
})
export class Comp {}
home.ts
@NgModule({
imports: [
CommonModule, FormsModule, IonicModule, RouterModule.forChild([{path: '', component: Page}])
],
declarations: [Page]
})
export class Home {}
page.ts
export class Page{
constructor(private iab : InAppBrowser, private platform : Platform) {}
ngOnInit(){
this.iab.create(URL, _blank); //tried _self too. not working
}
}
安装包前忘记安装插件。对于信息不足,我深表歉意。
ionic cordova plugin add cordova-plugin-inappbrowser
但还是应该更好地处理不便。还是想知道为什么缺少插件不被视为错误。
在 Ionic App 页面(ionic serve
的 localhost:8100 页面),开发者控制台记录了警告
Native: InAppBrowser is not installed or you are running on a browser. Falling back to window.open.
在网络浏览器中发生的事情实际上在我在设备上测试时也发生过(ionic cap run android
)。该网站是在设备的默认外部网络浏览器上打开的,而不是应用程序的“应用程序内”网络浏览器。我想是因为 InAppBrowser
在构建期间从未安装到设备上。但是我不知道为什么。
以下是我的代码的最简化的可行版本。如果需要更多,请随时询问。
main.ts
if (environment.production) enableProdMode();
platformBrowserDynamic().bootstrapModule(App).catch(err => console.log(err));
app.ts
@NgModule({
declarations: [Comp],
entryComponents: [],
imports: [
IonicModule, CommonModule, FormsModule, BrowserModule, IonicModule.forRoot(), Routing
],
providers: [
InAppBrowser, { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
],
bootstrap: [Comp]
})
export class App {}
routing.ts
const routes: Routes = [
{ path: '', loadChildren: () => import('./home').then(m => m.Home) }
];
@NgModule({
imports: [RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })],
exports: [RouterModule]
})
export class Routing {}
component.ts
@Component({
selector: 'app-root', templateUrl: 'component.html', styleUrls: ['component.scss'],
})
export class Comp {}
home.ts
@NgModule({
imports: [
CommonModule, FormsModule, IonicModule, RouterModule.forChild([{path: '', component: Page}])
],
declarations: [Page]
})
export class Home {}
page.ts
export class Page{
constructor(private iab : InAppBrowser, private platform : Platform) {}
ngOnInit(){
this.iab.create(URL, _blank); //tried _self too. not working
}
}
安装包前忘记安装插件。对于信息不足,我深表歉意。
ionic cordova plugin add cordova-plugin-inappbrowser
但还是应该更好地处理不便。还是想知道为什么缺少插件不被视为错误。