네트워크가 연결되어 있지만 인터넷이 작동하지 않는 경우. 예 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 및 인터넷 연결 해제 후, 구글의 페이지를로드합니다. 나는이 두 가지를 모두 안드로이드와 데스크톱에서 테스트했다.
URL에 문제가있을 때 어떤 현상이 발생 했습니까? – Sampath
아무 것도 흰색 페이지를 표시하지 않고 거기에만 표시됩니다. –
로드 오류 오류 코드에서 코드를 변경하고 10 초 후에로드됩니다. 내 응용 프로그램을 시작할 때 10 초가 걸리고 loaderror가 발생하면 다시 10 초가 걸리므로 총 20이됩니다. –