簡體   English   中英

在默認瀏覽器中打開URL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM