PhoneGap を使用して iPad 用のアプリケーションを作成しています。Safari を起動したり、ChildBrowser などの内部 Web ブラウザを使用したりせずに、外部 URL をロードしたいと考えています。
私は PhoneGap iPad/iPhone サンプル プロジェクトを使用しており、さまざまなアプローチを試みました。onBodyLoad() 関数に追加しました:
window.location.href('http://www.wordreference.com');
ただし、この行は新しい Safari ウィンドウを使用してリンクを開きます。その時点から、PhoneGap に戻ることはできません。
その後、document.writeを使用してページのコンテンツを置き換えるAJAXリクエストを試しました
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 で入力した場合、リンクは完全に機能していることを指摘したいと思います (プライバシーの問題で報告できません)。
ある種の必要な許可に関連する問題でしょうか???
BlackBerry の PhoneGap に関連するものを見つけました。提案された解決策は、config.xml ファイルを次のように変更することでした。
<access subdomains="true" uri="http://www.mysite.com/" />
このタグを index.html に直接追加しようとしましたが、うまくいきません。
iPhoneに同様のアプローチはありますか??
どうもありがとう