如果 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
}
我正在使用 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
}