我正在开发一个android phoenegap应用程序。感谢Stackoverflow,我设法让它开始工作。唯一的问题是超时。应用程序有时会顺利启动而不会抛出错误,但有时它会抛出错误:
Application Error - The connection to the server was unsuccessful.
(file:///android_asset/www/index.html)
我用Google搜索并找到了2个解决方案:
1)添加超时值:super.loadUrl(“file:///android_asset/www/index.html”,10000);
2)创建虚拟索引页面,如this link
但问题仍未解决。我也尝试将超时从10000增加到100000.仍然没有帮助。模拟器有时似乎工作正常,但突然agin抛出相同的错误。
我在这里做错了什么?任何帮助将不胜感激。
修改
的index.html
<!DOCTYPE HTML>
<html>
<head>
<title>First App</title>
<style>
.table {
border: 2px solid #a1a1a1;
background: #dddddd;
width: 90px;
height: 90px;
border-radius: 25px;
text-align: center;
position:absolute;
}
</style>
<script src="cordova.js"></script>
<script type="text/javascript" src="jquery-1.11.1.min.js"></script>
<script type="text/javascript">
function onLoad()
{
$('.table1').html('');
$.ajax({
type: "POST",
url: "http://192.168.0.70:81/MobileService.asmx/GetTables",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
cache: false,
success: function (msg) {
var Tabels = msg.d;
$.each(Tabels, function(index, table) {
alert('ptx'+table.PointX);
var tabel_data='<div class="table"';
tabel_data +=' style="top:'+ table.PointY +'px;';
tabel_data +='left:'+table.PointX+'px;"';
tabel_data +=">"+table.TableName +"</div>";
$('.table1').append(tabel_data);
});
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert('error');
alert(errorThrown);
}
});
}
</script>
</head>
<body>
<input type="submit" onclick="onLoad();" value="layout1">
<div class="table1" style="position: absolute; display: block;" ></div>
</body>
</html>
MainActivity.java:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.loadUrl("file:///android_asset/www/index.html", 10000);
}
答案 0 :(得分:1)
关于您的应用程序错误:
我建议不要使用静态(10秒!)超时,有更好的方法不会影响应用的可用性。虚拟索引同样很糟糕。如果您能给我更多信息,我相信我们可以为您解决这个问题。
我相信你的问题很可能是2:在设备准备好之前尝试与cordova api进行交互