Я пишу приложение для iPad с использованием PhoneGap и хочу загрузить внешний URL-адрес без запуска Safari или использования внутреннего веб-браузера, такого как ChildBrowser.
Я использую пример проекта PhoneGap для iPad / iPhone и пробовал разные подходы. В функцию onBodyLoad () я добавил:
window.location.href('http://www.wordreference.com');
но эта строка открывает ссылку, используя новое окно Safari. С этой точки невозможно вернуться в PhoneGap
После этого я попытался с помощью AJAX-запроса заменить содержимое страницы, используя document.write
function loadHTML(url, timeout) {
if (timeout == undefined)
timeout = 10000;
var req = new XMLHttpRequest();
var timer = setTimeout(function() {
try {
req.abort();
} catch(e) {}
navigator.notification.loadingStop();
},timeout);
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status < 300) {
clearTimeout(timer);
var html = req.responseText;
//just a debug print
alert(html);
document.write(html);
}
navigator.notification.loadingStop();
delete req;
}
};
req.open('GET', url, true);
req.send();
}
Теперь вызов изнутри onBodyLoad ():
loadHTML('http://www.wordreference.com',10000);
Открывает ссылку в контейнере PhoneGap, что нормально. Дело в том, что я хочу загрузить динамическую страницу , написанную на Python
loadHTML('http://www.mysite.com/cgi-bin/index.py',10000)
В этот момент Safari не вызывается, но отображается черная страница в контейнере PhoneGap !!
Хочу отметить, что ссылка отлично работает, если я набираю ее в Safari (я не могу сообщить о ней по вопросам конфиденциальности).
Может быть, это проблема, связанная с каким-то необходимым разрешением ???
Я обнаружил нечто подобное относительно PhoneGap для BlackBerry, и предлагаемое решение заключалось в изменении файла config.xml с помощью
<access subdomains="true" uri="http://www.mysite.com/" />
Я пытался добавить этот тег прямо в мой index.html, но он не работает.
Есть ли подобный подход для iPhone ??
Большое спасибо