我创建了一个Android应用程序,基本上通过phonegap inappbrowser加载响应式网站。
现在我想把它搞定,让它更像是一个应用程序。所以我的主要问题是
当我尝试加载应用程序并以某种方式上网时,它显示网站的网址并说网站不可用。所以我想删除它并显示我自己的自定义消息。那可能吗?我需要做些什么呢?
每当用户从应用程序点击网站的任何菜单项时,它会在页面转换/加载期间显示空白屏幕。无论如何,我每次点击菜单项时都会显示加载标志吗?
这就是我正在使用的
<script type="text/javascript" charset="utf-8">
// Wait for Cordova to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// Cordova is ready
//
function onDeviceReady() {
var ref = window.open('http://www.google.com', '_blank', 'location=yes');
ref.addEventListener('loadstart', function() { alert('start: ' + event.url); });
ref.addEventListener('loadstop', function() { alert('stop: ' + event.url); });
ref.addEventListener('loaderror', function(event) { alert('error: Please Check your Internet Connection. '); });
ref.addEventListener('exit', function() { alert(event.type); });
}
</script>
我正在使用Dreamweaver处理html部分和phonegap构建来编译我的应用程序。
我是相当新的,请详细说明。
function onDeviceReady()
{
checkConnection();
}
function checkConnection() {
var networkState = navigator.connection.type;
var states = {};
states[Connection.UNKNOWN] = 'Unknown connection';
states[Connection.ETHERNET] = 'Ethernet connection';
states[Connection.WIFI] = 'WiFi connection';
states[Connection.CELL_2G] = 'Cell 2G connection';
states[Connection.CELL_3G] = 'Cell 3G connection';
states[Connection.CELL_4G] = 'Cell 4G connection';
states[Connection.NONE] = 'No network connection';
if(states[networkState]==states[Connection.NONE])
{alert('No Internet Connection! Please Turn on Wifi or Mobile Data to use this application');}
else
{
var ref = window.open('http://www.google.com', '_blank', 'location=yes');
ref.addEventListener('loadstart', function() { alert('start: ' + event.url); });
ref.addEventListener('loadstop', function() { alert('stop: ' + event.url); });
ref.addEventListener('loaderror', function(event) { alert('error: Please Check your Internet Connection. '); });
ref.addEventListener('exit', function() { alert(event.type); });
}
}
那么如果在使用应用程序的过程中互联网被关闭怎么办?它也会起作用吗?如果没有,那么还有什么方法可以做到这一点吗?
您也可以告诉我在您的回复中应用以下代码的位置
navigator.notification.activityStart("Please Wait", "Its loading your homepage.....");
Below code will stop the loading popup :
navigator.notification.activityStop();
非常感谢你。我真的需要这两种解决方案:(
答案 0 :(得分:1)
嗨,最后为我工作
当浏览器没有互联网时,会调用onerror函数。
当存在互联网连接时,会调用onload函数。
<body>
<script>document.write('<img src="http://static.forosdelweb.com/fdwtheme/logo-navidad.png?'+Math.random()+'" style="display:none" onload="alert("hay internet")" onerror="alert("no hay internet")" />');</script>
</body>
&#13;
答案 1 :(得分:0)
您可以使用以下代码检查onDevice onDeviceReady函数。
function onDeviceReady()
{
checkConnection();
}
function checkConnection() {
var networkState = navigator.connection.type;
var states = {};
states[Connection.UNKNOWN] = 'Unknown connection';
states[Connection.ETHERNET] = 'Ethernet connection';
states[Connection.WIFI] = 'WiFi connection';
states[Connection.CELL_2G] = 'Cell 2G connection';
states[Connection.CELL_3G] = 'Cell 3G connection';
states[Connection.CELL_4G] = 'Cell 4G connection';
states[Connection.NONE] = 'No network connection';
if(states[networkState]==states[Connection.NONE])
{alert('No Internet Connection! Please Turn on Wifi or Mobile Data to use this application');}
else
{
//load your pages
}
}
现在,如果您要加载响应式网站,则需要在该响应式网站中指定加载程序。但在cordova中,您可以使用以下代码加载
navigator.notification.activityStart("Please Wait", "Its loading your homepage.....");
下面的代码将停止加载弹出窗口:
navigator.notification.activityStop();