如何在cordova项目中异步打开inappbrowser
how to open inappbrowser asynchronously in cordova project
我正在 phonegap cordova 中创建一个 android 应用程序,我在这里使用 appbrowser pluggin.my 将网站转换为 webview pluggin.my 问题是在应用程序浏览器中加载时它在应用程序中显示白屏,有什么办法吗为了避免这个空白screen.i已经为应用程序设置了flash sreen,但它对inappbrowser没有影响。
我可以按照其中一种方法得到问题的解决方案
1)如果有任何方法可以将闪屏设置为inappbrowser
或
2) 如果我能够异步加载 inappbrowser,在加载期间我可以显示应用程序的闪屏
或
3)还有其他解决方案吗?
我使用了以下 javascript 代码
function onDeviceReady() {
var url = 'http://www.mahadevaastro.com/bayarkart/';
var target = '_blank';
var options = "location=no,zoom=no"
var option1 = "zoom=no"
var ref = cordova.InAppBrowser.open(url, target, options);
// var ref = window.open(url, target, options, option1);
ref.addEventListener('loadstart', loadstartCallback);
ref.addEventListener('loadstop', loadstopCallback);
ref.addEventListener('loadloaderror', loaderrorCallback);
ref.addEventListener('exit', exitCallback);
function loadstartCallback(event) {
showSpinner();
}
function loadstopCallback(event) {
hideSpinner();
}
function loaderrorCallback(error) {
console.log('Loading error: ' + error.message)
}
function exitCallback() {
console.log('Browser is closed...')
}
function showSpinner() {
navigator.notification.activityStart("Bayar Speed Kart", "Its loading....");
// $.mobile.loading("show");
}
function hideSpinner() {
navigator.notification.activityStop();
//$.mobile.loading("hide");
}
// Handle the Cordova pause and resume events
document.addEventListener( 'pause', onPause.bind( this ), false );
document.addEventListener( 'resume', onResume.bind( this ), false );
// TODO: Cordova has been loaded. Perform any initialization that requires Cordova here.
};
有一次我也遇到同样的问题,我的解决方法是在 loadstart 方法中加载 gif 图片
ref.addEventListener("loadstart", function () {
ref.executeScript(
// { code: "document.body.style.backgroundColor = 'yellow';" },
{ code: "document.body.style.background = 'url(loading.png)';" },
// url("paper.gif");
function (values) {
//alert(values[0]);
}
);
});
我正在 phonegap cordova 中创建一个 android 应用程序,我在这里使用 appbrowser pluggin.my 将网站转换为 webview pluggin.my 问题是在应用程序浏览器中加载时它在应用程序中显示白屏,有什么办法吗为了避免这个空白screen.i已经为应用程序设置了flash sreen,但它对inappbrowser没有影响。
我可以按照其中一种方法得到问题的解决方案
1)如果有任何方法可以将闪屏设置为inappbrowser
或
2) 如果我能够异步加载 inappbrowser,在加载期间我可以显示应用程序的闪屏
或
3)还有其他解决方案吗?
我使用了以下 javascript 代码
function onDeviceReady() {
var url = 'http://www.mahadevaastro.com/bayarkart/';
var target = '_blank';
var options = "location=no,zoom=no"
var option1 = "zoom=no"
var ref = cordova.InAppBrowser.open(url, target, options);
// var ref = window.open(url, target, options, option1);
ref.addEventListener('loadstart', loadstartCallback);
ref.addEventListener('loadstop', loadstopCallback);
ref.addEventListener('loadloaderror', loaderrorCallback);
ref.addEventListener('exit', exitCallback);
function loadstartCallback(event) {
showSpinner();
}
function loadstopCallback(event) {
hideSpinner();
}
function loaderrorCallback(error) {
console.log('Loading error: ' + error.message)
}
function exitCallback() {
console.log('Browser is closed...')
}
function showSpinner() {
navigator.notification.activityStart("Bayar Speed Kart", "Its loading....");
// $.mobile.loading("show");
}
function hideSpinner() {
navigator.notification.activityStop();
//$.mobile.loading("hide");
}
// Handle the Cordova pause and resume events
document.addEventListener( 'pause', onPause.bind( this ), false );
document.addEventListener( 'resume', onResume.bind( this ), false );
// TODO: Cordova has been loaded. Perform any initialization that requires Cordova here.
};
有一次我也遇到同样的问题,我的解决方法是在 loadstart 方法中加载 gif 图片
ref.addEventListener("loadstart", function () {
ref.executeScript(
// { code: "document.body.style.backgroundColor = 'yellow';" },
{ code: "document.body.style.background = 'url(loading.png)';" },
// url("paper.gif");
function (values) {
//alert(values[0]);
}
);
});