如果页面上有一个不是链接的 URL 或电话号码,有没有办法让WebView识别它并自动将其转换为链接,就像使用TextView一样?
使用 aTextView
您只需将 设置android:autoLink
为所需的设置:
<TextView
android:autoLink="web|phone"
... />
但我找不到任何等价物WebView
。
如果您从字符串加载自己的(网络)内容,那么您可以执行以下操作:
final String content = "My email is: firstname@email.com ...";
Spannable sp = new SpannableString(content);
Linkify.addLinks(sp, Linkify.ALL);
final String html = "<body>" + Html.toHtml(sp) + "</body>";
myWebView.loadData(html, "text/html", "utf-8");
我不知道有什么方法可以通过更改设置来完成这项工作,但一种解决方法是等到网页完成加载然后执行:
yourWebView.loadUrl("javascript:(function(){ /* code that creates links */ })()");
这会将 javaScript 注入到已经加载的网页中。这里有一个稍长的示例:http: //lexandera.com/2009/01/injecting-javascript-into-a-webview/。
如果您查看 Greasemonkey 的 Linkify 脚本的源代码,您可以找到用于创建链接的 JavaScript 源代码(如果您不熟悉它,它是 Firefox 的插件)。我相信它带有默认安装。