禁用/隐藏Cordova生成的Android WebView上的文本选择上下文菜单

wwtsj6pe  于 2023-02-16  发布在  Android
关注(0)|答案(2)|浏览(185)

我正在尝试禁用、删除或隐藏在android中原生高亮显示文本时出现的上下文菜单。http://i.stack.imgur.com/caUOw.png(我的声誉太低,无法将其包含在此帖子中:P)绿色标题上的右上角按钮旨在作为应用中的可选上下文菜单。根据测试,原生上下文菜单的出现滞后于应用,并混淆了用户的体验。
我试过了
覆盖ActionMode.cordova生成的MainActivity中的回调。访问菜单(mode.getMenu())后,我可以清除它(menu.clear())http://i.stack.imgur.com/t9chW.png。但是! menu.close()不关闭上下文菜单。
创建一个空菜单视图,并在空菜单上调用动作模式的menu inflater。

  • webkit-touch-标注:无;在javascript中。
    救命啊!
hgc7kmma

hgc7kmma1#

将以下代码添加到CSS样式表中可以防止WebView中出现此行为:

body {
  -webkit-user-select: none;                  /* prevent copy paste, to allow, change 'none' to 'text' */
}

不确定您是否希望在WebView或本机UI组件中禁用。

kfgdxczn

kfgdxczn2#

尽管这是一个老问题,我想分享我的解决方案,因为它花了我相当长的时间来弄清楚。
捕获“contextmenu”事件并阻止默认值()。

<input style="text" oncontextmenu="e=>e.preventDefault()"/>

myHtmlElement.addEventListener('contextmenu', e => e.preventDefault())

相关问题