Android WebView在WebView中单击打开而不是默认浏览器

sel*_*lva 30 android android-webview

我使用WebView做了一个示例应用程序,在该Web视图中,URL来自Web服务.它工作正常,但如果我点击该WebView中的任何链接,它会自动转到默认的Web浏览器.但我想在我的应用程序Web视图中打开.这是我的代码:

WvBikeSite = (WebView) findViewById(R.id.wv_bikeWebsite);
wvBikeSite.loadUrl(getBundle.getString("www"));
Run Code Online (Sandbox Code Playgroud)

小智 69

您必须为webView设置webViewClient.

样品:

this.mWebView.setWebViewClient(new WebViewClient(){

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url){
      view.loadUrl(url);
      return true;
    }
});
Run Code Online (Sandbox Code Playgroud)


Mar*_*ons 10

您需要设置WebViewClient才能覆盖该行为(使用Web浏览器打开链接).您显然已声明了WebView,但随后设置了WebViewClient,如下所示:

WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.setWebViewClient(new WebViewClient());
Run Code Online (Sandbox Code Playgroud)

然后你需要定义你的WebViewClient():

private class MyWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (Uri.parse(url).getHost().equals("www.example.com")) {
            // Designate Urls that you want to load in WebView still.
            return false;
        }

        // Otherwise, give the default behavior (open in browser)
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        startActivity(intent);
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后启动WebViewClient:

WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.setWebViewClient(new MyWebViewClient());
Run Code Online (Sandbox Code Playgroud)

http://developer.android.com/guide/webapps/webview.html


Sye*_*eel 5

我面临同样的问题,我只是通过添加单行修复它.

webview.setWebViewClient(new WebViewClient());
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题.