如何在android webview中启用默认的高亮菜单?

时间:2011-09-28 09:33:41

标签: java android

如何启用默认文本高亮显示菜单,如:在android webview中复制/粘贴/搜索/共享?

enter image description here

3 个答案:

答案 0 :(得分:4)

使用Android 1.5 - 2.3,您可以使用自{2.2}以来的公开,但现在已弃用。此方法将WebView置于文本选择模式。

https://developer.android.com/reference/android/webkit/WebView.html#emulateShiftHeld%28%29

不幸的是,Android中没有集成复制/粘贴/搜索/共享功能,因为Android 2.0是文本选择 可以通过触摸驱动,但除此之外,你无法做其他事情。

答案 1 :(得分:2)

我找到了解决方法 在WebView上查看方法selectText()(它不在API中,但可以使用反射调用)

这是我的完整方法源代码:

 public void startTextSelection() {
        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(this);
                Toast.makeText(getContext(), R.string.select_text, Toast.LENGTH_LONG).show();
            }
        }
    }

也适用于ICS。

答案 2 :(得分:-1)

试试这个:

 mWebView.setHapticFeedbackEnabled(true);
 mWebView.setLongClickable(true);