如何在Chromebook上的Android应用的WebView中显示右键单击上下文菜单

时间:2019-01-29 21:38:05

标签: android android-webview chromebook

我正在开发一个具有WebView并显示各种内容的Android应用。当我用手指长按(触摸较长时间)一些文本时,会弹出一个标准(水平)Android上下文菜单。但是,当我用鼠标或触摸板在同一WebView中单击鼠标右键时,不会显示上下文菜单-而且是否选择了某些文本也没关系。

我已经尝试了许多解决方案,甚至在右键单击时都不会调用setOnContextClickListener中的回调(如图here所示)(但是,通用运动事件回调被称为),因此WebViews似乎完全不支持它。

最后,似乎必须创建自己的上下文菜单。我只是想知道是否没有任何一种标准可以通过某种方式启用。

我想要的是类似于EditText的右键单击上下文菜单,它是垂直的,但是右键单击时我无法显示两者之一。水平菜单和垂直菜单都显示在here中。

如果有帮助,我正在HP Chromebook x360 11 G1 EE上进行测试。

1 个答案:

答案 0 :(得分:1)

您可以override中的onTouchEvent(MotionEvent event) WebView并检测event.getButtonState()来查看单击了哪个按钮。

    switch (event.getButtonState()) {
        case MotionEvent.BUTTON_PRIMARY:
            onMouseClickListener.onLeftClick();
            break;

        case MotionEvent.BUTTON_SECONDARY:
            onMouseClickListener.onRightClick();
            break;
    }

请注意,onMouseClickListener是此事件的自定义侦听器。