Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android webview中启用默认突出显示菜单?_Java_Android - Fatal编程技术网

Java 如何在android webview中启用默认突出显示菜单?

Java 如何在android webview中启用默认突出显示菜单?,java,android,Java,Android,如何在android webview中启用默认的文本突出显示菜单,如:复制/粘贴/搜索/共享 试试这个: mWebView.setHapticFeedbackEnabled(true); mWebView.setLongClickable(true); 在Android 1.5-2.3上工作时,您可以使用从2.2开始公开的emulateShiftHold(),但现在已不推荐使用。此方法将您的WebView置于文本选择模式 不幸的是,Android没有集成复制/粘贴/搜索/共享功能,因为A

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

试试这个:

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

在Android 1.5-2.3上工作时,您可以使用从2.2开始公开的
emulateShiftHold()
,但现在已不推荐使用。此方法将您的WebView置于文本选择模式

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

我找到了一个解决方法 在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。

您可以推荐任何与javascript相关的东西吗?@Drax该问题的标签错误
WebView
是一个Java类,Java!=JavaScript(没有“JavaScript”)。但是,您可以尝试在
WebView
显示的文档中使用触摸事件的DOM脚本来模拟这一点。我使用了上述代码,但不幸的是,selectText已从Android 4.1(Jellybean)中完全删除,因此这将不再起作用。对4.1有什么建议吗?@Martin嗯,我必须研究一下4.1的源代码,找到解决方案后会尽快给你回复:)在分析了android.webkit.WebViewClassic之后,我取得了一些成功:在分析了android.webkit.WebViewClassic之后,我在以下方面取得了一些成功:KeyEvent enterEvent=newkeyevent(0,0,KeyEvent.ACTION\u DOWN,KeyEvent.KEYCODE\u ENTER,0,0);enterEvent.dispatch(这);但可能需要更多,因为我需要在上述工作之前稍微向下滚动WebView。@Martin我想会有一些方法实现这一点,我没有时间研究源代码,但我会尽快研究;)