我需要在WebView中以编程方式触发文本选择模式,但我使用的代码在Jelly Bean上不起作用?
我一直在使用以下代码,但它不再适用于Android 4.1(Jelly Bean),因为Jelly Bean不再支持WebView.selectText,emulateShiftHeld和密钥发送。
以下代码适用于ICS之前的所有版本基于:How to enable the default highlight menus in android webview?
public void selectAndCopyText() {
try {
// ICS
WebView.class.getMethod("selectText").invoke(this);
} catch (Exception e1) {
try {
Method m = WebView.class.getMethod("emulateShiftHeld", (Class[])null);
m.invoke(this, (Object[])null);
} catch (Exception e2) {
// fallback
KeyEvent shiftPressEvent = new KeyEvent(0,0,
KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_SHIFT_LEFT,0,0);
shiftPressEvent.dispatch(this);
}
}
}
如何实现适用于Jelly Bean的类似功能?
答案 0 :(得分:2)
我在这里的评论中列出了一个潜在的解决方案:How to enable the default highlight menus in android webview?
以下是潜在解决方案的内容:
在分析android.webkit.WebViewClassic
后,我在以下方面取得了一些成功:
KeyEvent enterEvent = new KeyEvent(0,0,KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_ENTER,0,0);
enterEvent.dispatch(this);
我认为可能需要更多,因为我需要在使用模拟器之前向上滚动WebView
一点,但在真正的JellyBean设备上测试之后,上面似乎工作正常。