phonegap(cordova 2.2)を使用します
私はこのようなリンクを持っています:
<a href="http://twitter.com/foobar" target="_blank">twitter</a>
iOSの場合-ブラウザ(Safari)でリンクを開きます
しかし、Androidでは-webview内(私のphonegapアプリ内)で開きます
AndroidをiOSと同じように機能させる方法はありますか?
phonegap(cordova 2.2)を使用します
私はこのようなリンクを持っています:
<a href="http://twitter.com/foobar" target="_blank">twitter</a>
iOSの場合-ブラウザ(Safari)でリンクを開きます
しかし、Androidでは-webview内(私のphonegapアプリ内)で開きます
AndroidをiOSと同じように機能させる方法はありますか?
これが、AndroidでCordova2.2とjQuerymobileを使用して動作させる方法です。
Javascript:
$('.link').live('tap', function() {
url = $(this).attr("rel");
loadURL(url);
});
function loadURL(url){
navigator.app.loadUrl(url, { openExternal:true });
return false;
}
html:
<a href='#' class='link' rel='http://www.someurl.com'>Go Somewhere</a>
アンドロイドのためにこれを試してください:
function loadURL(url){
navigator.app.loadUrl(url, { openExternal:true });
return false;
}
HTML:
<a click="loadURL('http://twitter.com/foobar')">twitter</a>
あなたはまたあなたのでこれを試すことができますconfig.xml
:
<access origin="*twitter.com" browserOnly="true"/>
user1879822によって提供されたリンクは、実際には私にとって最も有用なものでした:https ://build.phonegap.com/blog/access-tags
要約すると、PhoneGapのconfig.xml内に許可されたURLのホワイトリストがあります。これは、このようなエントリがある場合を意味します...
<access origin="*" />
...独自のWebビュー内のすべてのリンクを開こうとします。ただし、ホワイトリストを特定のURLのみに制限すると、そのリストにないURLへのリンクは、ローカルWebビュー内ではなく、外部ブラウザで自動的に開きます。たとえば、これだけに制限すると...
<access origin="http://127.0.0.1*" />
...その後、元の質問で言及されたTwitterリンクが新しい外部ブラウザで開くはずです。
iosバージョンのように、target="_blank"
属性を使用して使用する場合:
$(document).on('tap', 'a[target="_blank"]', function(e){
navigator.app.loadUrl(e.target.href, { openExternal: true });
return false;
});
私はこれを原則として使用します:
$('a').live('tap',function(e){
// if external link then open a browser
if(String($(this).attr('href')).substring(0,4)=='http' || String($(this).attr('href')).substring(0,5)=='https'){
navigator.app.loadUrl($(this).attr('href'), { openExternal:true });
e.stopPropagation();
return false;
}
});
私はまったく同じ問題を抱えていましたが、ほとんどの答えが異なるプラットフォームで混同されていることに気づきました。私にとって解決策は、さまざまなプラットフォームの詳細な説明です。
この質問が少し前に尋ねられたとしても、私は私を助けた次のblodエントリについてあなたに知らせたいと思いました:
https://build.phonegap.com/blog/access-tags
Androidでは、指定したドメインのホワイトリストを解除するだけで済みました。したがって、私のconfig.xmlには`がまったくありません。
これはiOSで私のために働いた
$("a[target='_blank']").on('tap touch click',function(e){
e.stopPropagation();
e.preventDefault();
window.open($(this).attr('href'), "_system");
return false;
});
phonegapのナビゲーターが機能します!
handler: function (btn, evt) {
loadURL('http://www.google.com');
}
..。
function loadURL(url){
navigator.app.loadUrl(url, { openExternal:true });
return false;
}