如果 url 无法在 Cordova inappbrowser 中加载,如何显示自定义本地页面

How to display Custom local page if url fails to load in Cordova inappbrowser

我正在使用 InApp 浏览器并调用一个页面。我想要的是,如果 Internet 已连接到设备,则它必须显示 url,如果未连接,则显示本地页面。

function onDeviceReady() {

    document.addEventListener('pause', onPause.bind(this), false);
    document.addEventListener('resume', onResume.bind(this), false);
    var inAppBrowserbRef;    
    inAppBrowserbRef = window.open('http://www.xxxxx.com', '_self', 'location=no,toolbar=no');
    inAppBrowserbRef.addEventListener('loadstart', inAppBrowserbLoadStart)

    inAppBrowserbRef.addEventListener('loadstop', inAppBrowserbLoadStop);

    inAppBrowserbRef.addEventListener('loaderror', inAppBrowserbLoadError);

    inAppBrowserbRef.addEventListener('exit', inAppBrowserbClose);

    function inAppBrowserbLoadStart(event) {       
        var options = { dimBackground: true };
        SpinnerPlugin.activityStart("Loading...", options);

    if (navigator.connection.type == Connection.NONE)

{ navigator.notification.alert('需要互联网连接

继续', alertSuccess, "Network Error", "Ok");

        }



        function alertSuccess() {


            navigator.app.exitApp();


        }


    }

    function inAppBrowserbLoadStop(event) {


        SpinnerPlugin.activityStop();



        if (navigator.connection.type == Connection.NONE) {


            navigator.notification.alert('An internet connection is required 

继续', alertSuccess, "Network Error", "Ok");

        }

        function alertSuccess() {


            navigator.app.exitApp();


        }
    }

    function inAppBrowserbLoadError(event) {


        SpinnerPlugin.activityStop();



        if (navigator.connection.type == Connection.NONE) {


            navigator.notification.alert('An internet connection is required to continue', alertSuccess, "Network Error", "Ok");


        }

        function alertSuccess() {


            navigator.app.exitApp();


        }
    }

    function inAppBrowserbClose(event) {  


        SpinnerPlugin.activityStop();



        inAppBrowserbRef.removeEventListener('loadstart', iabLoadStart);


        inAppBrowserbRef.removeEventListener('loadstop', iabLoadStop);


        inAppBrowserbRef.removeEventListener('loaderror', iabLoadError);


        inAppBrowserbRef.removeEventListener('exit', iabClose);


    }

有人知道我必须将重定向页面放在哪里吗?

您需要使用 cordova-plugin-network-information 插件(看起来您正在使用它)来检测 online/offline 状态。在您的 onDeviceReady() 事件处理程序中,您可以添加侦听器以响应 offline/online 事件:

document.addEventListener("offline", goOffline, false);
document.addEventListener("online", goOnline, false);

function goOffline() {
    // Redirect to your local/offline page here
}

function goOnline() {
    // Load the actual online content in InAppBrowser
}