好的,我的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的常规设置吗?
答案 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;
}
});