Я новичок в разработке приложений. Я использую Intel XDK для создания приложения для Android.
Приложение работает, подключаясь к базе данных в бэкенде, созданном с помощью Symfony, и отлично ведет себя в эмуляторе. Я хочу протестировать сейчас с реального устройства, используя свой компьютер в качестве локального хоста, через WiFi. Я читал, что вам нужно получить IP-адрес локального хоста с помощью ipconfig, а затем использовать этот IP-адрес для подключения. Однако, когда я тестирую приложение, оно не подключается. Странно то, что если я использую мобильный браузер с тем же URL-адресом, соединение работает: я вижу XML-файлы, которые я использую для получения информации из базы данных.
Код для подключения в приложении:
xmlhttp=new XMLHttpRequest();
xmlhttp.onerror=transferFailed;
xmlhttp.open("GET","http://192.xxx.x.x/symfony/web/app_dev.php/api/v1/reportes/reportes.xml",false);
Функция onerror:
function transferFailed(e) {
alert("Error al conectar:"+e.target.status);
}
Как я уже сказал, соединение не работает, и я получаю предупреждающее сообщение: «Ошибка подключения: 0».
Если я введу адрес http://192.xxx.x.x/symfony/web/app_dev.php/api/v1/reportes/reportes.xml
в мобильный браузер, я получу правильный файл XML.
Редактировать: Похоже, проблема была в запросе синхронизации. Позже мне пришлось разобрать ответ xml. Я не знаю, почему в эмуляторе и в приложении, которое я сделал в phonegap некоторое время назад, оно работало без синтаксического анализа. Код:
function mapIni() {
xmlhttp=new XMLHttpRequest();
xmlhttp.onerror=transferFailed;
xmlhttp.open("GET","http://localhost/symfony/web//app_dev.php/api/v1/reportes/reporte.xml",true);
xmlhttp.onload= function (event) {
alert("onload:"+xmlhttp.response);
};
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
xmlDoc=xmlhttp.responseXML;
xmlDoc=xmlhttp.responseXML;
xmlDoc = new DOMParser().parseFromString(xmlhttp.responseText,'text/xml');
x=xmlDoc.getElementsByTagName("entry");
alert("x[0]:"+x[0].getElementsByTagName("tipo")[0].childNodes[0].nodeValue);
}
}
xmlhttp.send();
}