有没有办法在Android中使用WebView自动链接网址和电话号码?

Jer*_*gan 9 android hyperlink webview

如果页面上的URL或在其上的电话号码是不是链接有什么办法有WebView中识别它,并自动把它变成一个链接像您可以TextView的 S'

使用a,TextView您只需将其android:autoLink设置为所需的设置:

<TextView
    android:autoLink="web|phone"
    ... />
Run Code Online (Sandbox Code Playgroud)

但我找不到任何等价物WebView.

Har*_*rri 35

如果要从String加载自己的(Web)内容,则可以执行以下操作:

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");
Run Code Online (Sandbox Code Playgroud)

  • 请注意,如果内容字符串已经包含HTML,您将需要使用`Spannable sp = new SpannableString(Html.fromHtml(content))`,以便您的字符不会在`Html.toHtml(sp)中实体化. . (13认同)

Ale*_*tec 2

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

yourWebView.loadUrl("javascript:(function(){ /* code that creates links */ })()");
Run Code Online (Sandbox Code Playgroud)

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

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