WebView自动检测链接,电话号码和邮件地址

时间:2018-08-20 21:12:56

标签: android webview

嗨,我有一个WebView,我在其中使用以下代码加载了一些html文本:

        text6.loadDataWithBaseURL("","<html>\n" +
            "<head>\n" +
            "<style type=\"text/css\">\n" +
            "@font-face {\n" +
            "    font-family: MyFont;\n" +
            "    src: url(\"file:///android_asset/fonts/Brandon_light.otf\")\n" +
            "}\n" +
            "body {\n" +
            "    font-family: MyFont;\n" +
            "    font-size: medium;\n" +
            "    text-align: center;\n" +
            MessageFormat.format("link: {0};color:{1}", ColorManager.generalColorHEX, ColorManager.colorNameActivityCellHEX)+
            "}\n" +
            "</style>\n" +
            "</head>\n" +
            MessageFormat.format("<body link={0}>", ColorManager.generalColorHEX) +
            MessageFormat.format("{0}", DataManager.surveyDesc) +
            "</body>\n" +
            "</html>",DataManager.mimeType, DataManager.encoding, "");

加载的文本可能包含电子邮件地址,电话号码和链接。 WebView是否可以识别超链接并在点击时执行正确的操作(发送电子邮件,打开链接,拨打电话...),谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用类似的方法覆盖该网址。

public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith("tel:")) { 
    Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(url)); 
    startActivity(intent);
    return true;
}

与邮件等相同,只需添加所需的网址即可。