sencha touch + phonegap を使用してネイティブ アプリ android + ios をデプロイしました。アプリ内のリンクをクリックすると、アプリ内で開き、外出できません。
リンクを携帯電話のブラウザで開くことができる方法はありますか?
sencha touch + phonegap を使用してネイティブ アプリ android + ios をデプロイしました。アプリ内のリンクをクリックすると、アプリ内で開き、外出できません。
リンクを携帯電話のブラウザで開くことができる方法はありますか?
次のように app.js の「launch」関数内にこの関数を追加するだけです。
launch: function() {
// Destroy the #appLoadingIndicator element
//Ext.fly('appLoadingIndicator').destroy();
// Initialize the main view
Ext.Viewport.add(Ext.create('yourApp.view.Main'));
// Voila :
Ext.Viewport.element.dom.addEventListener('click', function (e) {
if (e.target.tagName !== 'A') {
return;
};
var url = e.target.getAttribute('href');
var containsHttp = new RegExp('http\\b');
//if href value begins with 'http'
if(containsHttp.test(url)) {
e.preventDefault();
window.open(url, "_system"); // For iOS
navigator.app.loadUrl(url, {openExternal: true}); //For Android
}
else {
return;
}
}, false);
}, //...
その後、Android と iOS を同時にビルドできます。
私が間違っていなければ、使用した phonegap のバージョンは 2.9.0 でした。
私は同じ問題を抱えていて、次のように解決しました:
プロジェクトに JQuery JavaScript ファイルを埋め込みます。私の場合は次のとおりでした。
<script type="text/javascript" charset="utf-8" src="js/jquery-1.10.2.min.js"></script>
次に、onDeviceReady 関数で呼び出した次の関数を作成しました。
function enableHttpLinks() {
$('.externalLink').click(function(e) {
e.preventDefault();
url = $(this).attr("href");
window.open(url, '_system');
});
}
この機能を機能させるには、externalLink
以下に示すように、デバイス ブラウザーで開きたいすべてのリンクにクラスを割り当てます。
<a href="..." class="externalLink">your link title</a>
幸運を...