PhoneGap для iPhone: проблема с загрузкой внешнего URL-адреса

Я пишу приложение для iPad с помощью PhoneGap и хочу загрузить внешний URL без запуска Safari или использования внутреннего веб-браузера, такого как ChildBrowser.

Я ' m, используя образец проекта 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 !! Я попытался с помощью 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 !! Я попытался с помощью 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 ??

Большое спасибо

26
задан Claus 6 May 2011 в 12:15
поделиться