如果有网络连接但互联网不工作。例如有一个WiFi连接,但WiFi没有互联网连接,浏览器观察者应该触发“loaderror”事件。ionic2 InAppBrowser(离子本机)loaderror不起作用
代码:
import { Component } from '@angular/core';
import { Platform,AlertController,LoadingController } from 'ionic-angular';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
import { Network } from '@ionic-native/network';
import { HomePage } from '../pages/home/home';
import { InAppBrowser } from '@ionic-native/in-app-browser';
@Component({
templateUrl: 'app.html'
})
export class MyApp {
public rootPage:any = HomePage;
constructor(private platform: Platform,private statusBar: StatusBar,private splashScreen: SplashScreen, private network: Network, private alertCtrl: AlertController, private iab: InAppBrowser, private loadingCtrl: LoadingController) {
platform.ready().then(() => {
// Okay, so the platform is ready and our plugins are available.
// Here you can do any higher level native things you might need.
let alert = this.alertCtrl.create({
title: "Network Problem",
subTitle: 'Internet is not connected' ,
buttons: [
{
text: 'Close', handler:() => {
this.platform.exitApp();
}
}
]
});
const loading = this.loadingCtrl.create();
if(this.network.type !== 'none') {
loading.present();
const browser = this.iab.create('http://www.google.com','_blank','location=no,clearsessioncache=yes');
browser.on("loaderror").subscribe(() => {
loading.dismiss();
this.iab.create('http://192.168.2.222/users/dashboard','_blank','location=no,clearsesioncache=yes');
});
const sub = browser.on('loadstart').subscribe(() => {
loading.dismiss();
sub.unsubscribe();
},
err => { loading.dismiss(); console.log('error') ; alert.present()},
() => { loading.dismiss(); console.log('success') });
}
/// check connectivity automatically .
let connectSubscription = network.onConnect().subscribe(() => {
loading.present();
const browser = this.iab.create('http://www.google.com','_blank','location=no,clearsesioncache=yes');
browser.on("loaderror").subscribe(() => {
loading.dismiss();
this.iab.create('http://192.168.2.222/users/dashboard','_blank','location=no,clearsesioncache=yes');
});
});
let disconnectSubscription = network.onDisconnect().subscribe(() => {
const browser = this.iab.create("error.html",'_blank','location=no');
});
statusBar.styleDefault();
splashScreen.hide();
});
}
}
但它总是加载谷歌网页,甚至都能得到加载clearsessioncache和网络断开后。我在android和桌面上测试了这个。
当url有问题时发生了什么? – Sampath
什么都不显示白页,只在那里。 –
我改变了加载错误的代码我的火脚本,它得到加载,但10秒后。当我启动我的应用程序需要10秒,当loaderror发生时,它再次需要10秒,所以共20。 –