JQuery Mobile + PhoneGap для Android - Ошибка загрузки index.html
Я пытаюсь получить базовую программу PhoneGap + JQuery Mobile для платформы Android 2.2, но я получаю сообщение об ошибке "Соединение с сервером не увенчалось успехом (файл:///android_asset/www/index.html)" в эмуляторе Android, когда я пытаюсь запустить приложение на платформе Android Emulator 2.2 на Windows XP, с Eclipse 3.7.
Загрузка файла, если я удалю все ссылки и синтаксис JQuery Mobile из файла HTML, поэтому я уверен, что мой проект в порядке, но что-то мне не хватает при инициализации JQuery Mobile. Я использую PhoneGap 0.9.6 с JQuery Mobile version * 1.0b1 * с JQuery версии 1.6.1 (я также пытался использовать JQM Version 1.0 a2 с JQuery 1.4.4, но с той же ошибкой).
Если я удалю все ссылки на JQuery Mobile из моего HTML файла, я смогу загрузить программу в эмулятор без ошибок.
Я просмотрел несколько примеров в Интернете и попробовал их так, как они есть, но все они показывают ту же ошибку. Мои файлы:
<!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);
}
Что мне не хватает?
Ответы
Ответ 1
Проблема, вероятно, связана со скоростью эмулятора, поэтому сеть слишком медленно завершает коммуникацию своевременно.
Установите 60-секундный тайм-аут в PhoneGap, добавив следующее свойство в src/com/phonegap/xxx.java
:
super.setIntegerProperty("loadUrlTimeoutValue", 60000);
Литература:
phonegap 0.9.3 onReceivedError: Код ошибки = -6 Описание = Соединение с сервером не увенчалось успехом
http://The%20connection%20To%20The%20Server%20Was%20Unsuccessful%20-%20Android%202.2,%20jquerymobile,%200.9.5.1
Ответ 2
Вышеупомянутое решение предназначено для Java-кода. Однако OP для javascript/jquery и телефонной связи. Следующее помогло мне решить проблему.
В config.xml добавьте:
<preference name="splash-screen-duration" value="25000" />
<!-- Increase the value until the error is solved-->
Проблема REAL заключается в том, что PhoneGap имеет начальный период загрузки страницы в 20 секунд. Если ваша страница занимает больше времени, вы получите это сообщение.
Application Error - The connection to the server was unsuccessful.
(file:///android_asset/www/index.html)