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 的实现。