适用于 Android 的 JQuery Mobile + PhoneGap - 加载 index.html 时出错
Posted
技术标签:
【中文标题】适用于 Android 的 JQuery Mobile + PhoneGap - 加载 index.html 时出错【英文标题】:JQuery Mobile + PhoneGap for Android - Error loading index.html 【发布时间】:2011-07-01 07:25:28 【问题描述】:我正在尝试为 Android 平台 2.2 运行基本的 PhoneGap + JQuery Mobile 程序,但我收到应用程序错误“与服务器的连接不成功(file:///android_asset/www/index.html)”当我尝试在 Windows XP 上的 Android Emulator 平台 2.2 中使用 Eclipse 3.7 运行应用程序时,在 Android 模拟器中强>。
如果我从 HTML 文件中删除了 JQuery Mobile 的所有引用和语法,则文件会加载,所以我确信我的项目很好,但是我在初始化 JQuery Mobile 时缺少一些东西。我将 PhoneGap 0.9.6 与 JQuery Mobile 版本 *1.0b1* 与 JQuery 版本 1.6.1 一起使用(我还尝试使用带有 JQuery 1.4.4 的 JQM 版本 1.0a2,但出现相同的错误)。
如果我从我的 HTML 文件中删除所有对 JQuery Mobile 的引用,那么我就可以在模拟器中加载程序而不会出错。
我查看了网络上的几个示例并按原样进行了尝试,但所有示例都显示相同的错误。我的文件如下:
<!DOCTYPE HTML>
<html>
<head>
<meta name="viewport" content="width=320; user-scalable=no" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>PhoneGap With JQM</title>
<link rel="stylesheet" href="jquery.mobile-1.0b1.min.css" type="text/css" charset="utf-8" />
<script src="jquery-1.6.1.min.js"></script>
<script type="text/javascript" charset="utf-8" src="phonegap.0.9.6.js"></script>
<script type="text/javascript" charset="utf-8" src="main.js"></script>
<script src="jquery.mobile-1.0b1.min.js"></script>
</head>
<body onload="init();">
<div data-role="page" data-theme="e">
<div data-role="header">
<h1>PhoneGap with JQM</h1>
</div>
<div data-role="content">
<h1>My Content</h1>
</div>
<div data-role="footer">
<h1>My Footer</h1>
</div>
</body>
</html>
main.js 文件只有:
function init()
document.addEventListener("deviceready", deviceInfo, true);
我错过了什么?
【问题讨论】:
index.html文件如下: 我的问题得到了解决(感谢 PhoneGap Google Groups 上的 Viras)。出现问题的原因是 Android 模拟器真的很慢,因此在加载文件时会发生超时,因为它的反应太慢了。在调用 super.loadUrl 之前在自定义 Activity 文件中添加以下行: super.setIntegerProperty("loadUrlTimeoutValue", 60000); 请回答您的问题,如果您的问题解决了,请关闭它,我只是浪费了我生命中的 2 分钟! 【参考方案1】:问题可能是模拟器速度太慢导致网络太慢,及时完成通信。
通过将以下属性添加到 src/com/phonegap/xxx.java
,在 PhoneGap 中设置 60 秒超时:
super.setIntegerProperty("loadUrlTimeoutValue", 60000);
参考资料:
phonegap 0.9.3 onReceivedError: Error code=-6 Description=The connection to the server was unsuccessful
http://The%20connection%20To%20The%20Server%20Was%20Unsuccessful%20-%20Android%202.2,%20jquerymobile,%200.9.5.1
【讨论】:
【参考方案2】:上述解决方案适用于基于 java 的代码。但是 OP 适用于 javascript/jquery 和 phonegap。以下内容帮助我解决了这个问题。
在 config.xml 中,添加:
<preference name="splash-screen-duration" value="25000" />
<!-- Increase the value until the error is solved-->
这里真正的问题是PhoneGap 的初始页面加载超时为20 秒。如果您的页面花费的时间超过该时间,您会收到此消息。
Application Error - The connection to the server was unsuccessful.
(file:///android_asset/www/index.html)
【讨论】:
以上是关于适用于 Android 的 JQuery Mobile + PhoneGap - 加载 index.html 时出错的主要内容,如果未能解决你的问题,请参考以下文章
Jquery mobile getJSON 适用于浏览器但不适用于移动设备
覆盖 Android Backbutton 行为仅适用于具有 PhoneGap 的第一页
部分视图部分适用于 JQuery,但不完全适用于 C# ASP.Net MVC 5