9

如果页面上有一个不是链接的 URL 或电话号码,有没有办法让WebView识别它并自动将其转换为链接,就像使用TextView一样?

使用 aTextView您只需将 设置android:autoLink为所需的设置:

<TextView
    android:autoLink="web|phone"
    ... />

但我找不到任何等价物WebView

4

2 回答 2

35

如果您从字符串加载自己的(网络)内容,那么您可以执行以下操作:

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");
于 2011-03-02T07:49:57.767 回答
2

我不知道有什么方法可以通过更改设置来完成这项工作,但一种解决方法是等到网页完成加载然后执行:

yourWebView.loadUrl("javascript:(function(){ /* code that creates links */ })()");

这会将 javaScript 注入到已经加载的网页中。这里有一个稍长的示例:http: //lexandera.com/2009/01/injecting-javascript-into-a-webview/

如果您查看 Greasemonkey 的 Linkify 脚本的源代码,您可以找到用于创建链接的 JavaScript 源代码(如果您不熟悉它,它是 Firefox 的插件)。我相信它带有默认安装。

于 2009-11-16T19:07:45.413 回答