android webview实现文本选择

http://www.androidlearner.net/android-webview-text-selection.html

最近在做一个应用,需要实现在webview中长按后弹出菜单,进入文本选择模式。在网上找了一段可用的代码,实际上,在android4.0之后,系统自带webview中长按文本选择的功能。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
  * 实现webview文本选择,android4.0以后默认长按进入文本选择模式
  */
private void enterTextSelection() {
        if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD_MR1)
                 return ;
 
         try {
                WebView. class .getMethod( "selectText" ).invoke( this );
          } catch (Exception e) {
             try {
                 WebView. class .getMethod( "emulateShiftHeld" ).invoke( this );
              } catch (Exception e1) {
                 KeyEvent shiftPressEvent = new KeyEvent( 0 , 0 ,
                         KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_SHIFT_LEFT, 0 , 0 );
              shiftPressEvent.dispatch(mWebView);
             }
        }
}

同时在webview中添加 OnCreateContextMenuListener 监听并在其中加上如上代码即可。

如果不想调用系统的文本选择功能,也可以参考开源类库 BTAndroidWebViewSelection 的实现。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值