![](/img/trans.png)
[英]using java not javascript, open URL in same tab of default browser
[英]open URL in the default browser
我有一個加載URL的webview,當我單擊webview時,我想在默認瀏覽器中打開鏈接。我試圖設置WebViewClient並override shouldOverrideUrlLoading(WebView view, String url)
方法
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.e("BaseFragment", "shouldOverrideUrlLoading " + url);
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(i);
return false;
}
但Webview不會調用它。 還有其他想法嗎?
BaseFragment是一個抽象類,其中我具有以下WebViewClient:
protected WebViewClient mAddWebViewClient = new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
float scale = addTopWebView.getHeight() / 170f;
addTopWebView.setInitialScale((int) (scale * 100f));
String js = "javascript:(function(){"
+ "document.getElementsByTagName('div')[0].style.height = 'auto';"
+ "document.getElementsByTagName('div')[0].style.width = 'auto';"
+ "})()";
view.loadUrl(js);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.e("BaseFragment", "shouldOverrideUrlLoading " + url);
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(i);
return true;
}
};
擴展此BaseFragment的其他片段具有一些webview,在onViewCreated方法中,我設置了webviewclient:
myWebView.getSettings().setJavaScriptEnabled(true);
addTopWebView = myWebView;
myWebView.setWebViewClient(mAddWebViewClient);
我認為您應該為外部瀏覽器返回true。
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.e("BaseFragment", "shouldOverrideUrlLoading " + url);
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(i);
return true;
}
如果要顯示在自定義Web視圖中,則應覆蓋並設置return為false。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.