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>
Androidでこれを試してください:
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ビュー内のallリンクを開こうとします。ただし、ホワイトリストを特定のURLのみに制限すると、そのリスト内のURLnotへのリンクは、外部ブラウザで自動的に開きます。ローカルウェブビュー。たとえば、これだけに制限すると...
<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;
});
この質問が少し前に尋ねられたとしても、私は私を助けた次のblodエントリについてあなたに知らせたいと思いました:
https://build.phonegap.com/blog/access-tags
Androidで私がしなければならなかったのは、指定したドメインのホワイトリストを解除することだけでした。したがって、私のconfig.xmlには `がまったくありません。
私はまったく同じ問題を抱えていましたが、ほとんどの答えが異なるプラットフォームで混同されていることに気づきました。私のために働く解決策は 異なるプラットフォームの詳細な説明
私はこれを原則として使用します:
$('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;
}
});
Phonegapのナビゲーターが機能します!
handler: function (btn, evt) {
loadURL('http://www.google.com');
}
.。
function loadURL(url){
navigator.app.loadUrl(url, { openExternal:true });
return false;
}
これはiOSで私のために働いた
$("a[target='_blank']").on('tap touch click',function(e){
e.stopPropagation();
e.preventDefault();
window.open($(this).attr('href'), "_system");
return false;
});