ページにリンクではないURLまたは電話番号が含まれている場合、WebViewにそれを認識させ、 TextViewの場合と同様に自動的にリンクに変換する方法はありますか?
を使用すると、を目的の設定に設定TextView
するだけです。android:autoLink
<TextView
android:autoLink="web|phone"
... />
しかし、に相当するものは見つかりませんWebView
。
ページにリンクではないURLまたは電話番号が含まれている場合、WebViewにそれを認識させ、 TextViewの場合と同様に自動的にリンクに変換する方法はありますか?
を使用すると、を目的の設定に設定TextView
するだけです。android:autoLink
<TextView
android:autoLink="web|phone"
... />
しかし、に相当するものは見つかりませんWebView
。
文字列から独自の(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");
設定を変更するだけでこれが機能する方法はわかりませんが、回避策は、Webページの読み込みが完了するまで待ってから次の手順を実行することです。
yourWebView.loadUrl("javascript:(function(){ /* code that creates links */ })()");
これにより、すでにロードされているWebページにjavaScriptが挿入されます。ここで利用できる少し長い例があります:http://lexandera.com/2009/01/injecting-javascript-into-a-webview/。
GreasemonkeyのLinkifyスクリプトのソースを見ると、リンクを作成するためのJavaScriptソースを見つけることができます(これは、Firefoxに慣れていない場合のプラグインです)。デフォルトのインストールが付属していると思います。