单击WebView链接创建意图

时间:2014-04-29 18:02:51

标签: android android-webview

好的,我的WebView内容中会有两种类型的链接。行为将由链接的格式定义。

(1) Open the link in a browser. (The url begins with "openbrowser:")
(2) According to the link, open another Activity in the same project. 
(The url will be "openactivity")

我不确定是否可以为WebView创建一个从url模式映射到intent的映射。例如,默认情况下,如果URL以“mailto:”开头,则WebView将创建打开邮箱的意图。我可以为我的WebView定义其他映射吗?

我知道有一种方法可以设置WebViewClient并覆盖shouldOverrideUrlLoading()方法。但是在API级别19中,不保证调用该函数:

shouldOverrideUrlLoading() not called

那么可以将此url模式设置为intent map作为WebView的常规设置吗?

1 个答案:

答案 0 :(得分:1)

使用WebViewClient就足够了。我们对API级别19没有任何问题。例如:

WebView webView = new WebView(this);
String html = "<html><body><a href=\"showmessage:hello%20there\">Test it</a></body></html>";
webView.loadData(html, "text/html", "utf-8");
webView.setWebViewClient(new WebViewClient()
{
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url)
    {
        if (url.startsWith("showmessage"))
        {
            Toast.makeText(MainActivity.this, url, Toast.LENGTH_SHORT).show();
            return true;
        }
        return false;
    }
});