Есть ли какой-нибудь способ иметь URL-адреса и номера телефонов для автоматической ссылки в WebView в Android? - PullRequest
9 голосов
/ 16 ноября 2009

Если на странице есть URL или номер телефона, который не является ссылкой, есть ли способ WebView распознать ее и автоматически превратить в ссылку, как вы можете с помощью TextView s

С помощью TextView вы просто установите android:autoLink на желаемые настройки:

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

но я не могу найти эквивалент для WebView.

Ответы [ 2 ]

34 голосов
/ 02 марта 2011

Если вы загружаете свой собственный (веб) контент из String, то вы можете сделать что-то вроде этого:

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");
2 голосов
/ 16 ноября 2009

Я не знаю ни одного способа, который сделал бы эту работу, просто изменив настройку, но обходной путь - это дождаться окончания загрузки веб-страницы и затем выполнить:

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

Это вставит javaScript в уже загруженную веб-страницу. Вот немного более длинный пример: http://lexandera.com/2009/01/injecting-javascript-into-a-webview/.

Вы можете найти источник JavaScript для создания ссылок, если взгляните на источник скрипта Linkify для Greasemonkey (это плагин для Firefox на тот случай, если вы с ним не знакомы). Я считаю, что это происходит с установкой по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...