如何在Android webview中仅加载特定类型的链接?

时间:2017-02-07 11:50:17

标签: android android-webview

我的Android应用中有一个简单的webview。默认情况下,我有assets文件夹中的本地主页,该主页首先加载到webview中。在主页内,我有两种类型的链接。当用户单击第一种类型的链接时,必须在webview中加载,而如果单击第二种类型的链接,则必须在默认浏览器中打开。

我知道我必须使用webview客户端,但我不确定如何拆分这个链接。

当我使用webview客户端时,它会加载webview中的所有URL。我想在webview中加载几种类型的链接,将其他类型的链接加载到外部默认浏览器中。

ex: <a href="http://www.example.com/" id="firstlinks" class="firstlinks">Load   My Webpage</a>  
ex: <a href="http://www.google.com/" id="secondlinks" class="secondlinks">Load Google.com</a>

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

您需要做的就是

private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if (Uri.parse(url).getHost().equals("www.example.com")) {
        // This is my web site, so do not override; let my WebView load the page
        return false;
    }
    // Otherwise, the link is not for a page on my site, so launch another Activity that handles URLs
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
    startActivity(intent);
    return true;
  }
}