読者です 読者をやめる 読者になる 読者になる

ほげほげ(仮)

仮死状態

WebViewの長押しのイベントを取得する

Android


通常のブラウザのように長押しで画像の保存等を行うには次のようにやります。

mWebView.setOnLongClickListener(new OnLongClickListener() {
    @Override
    public boolean onLongClick(View v) {
        WebView webView = (WebView) v;
        WebView.HitTestResult hr = webView.getHitTestResult();
        String url = hr.getExtra();
        Log.d("WebView LogClick", url);
        return false;
    }
});


onLongClickでViewからWebView.HitTestResultで長押しされている箇所のURLが取得できます。

自分が確認できたのはリンクと画像でイベントが走りました。


これを使えば長押しされている画像やリンクに対して処理が可能となります。

修正

すいません、2.2以前では画像だけではイベントは走りませんでした。リンクが貼ってある画像だけですね。

バージョンが2.3以降の場合はイベントが取得できるようになっています。
軽くメモしておきました。WebViewの長押しイベントについて(2.3以降) - 全力で気まぐれ