You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WebView App中禁用选中文本时的默认复制粘贴菜单

禁用WebView选中文本时的系统默认菜单

针对你遇到的WebView自定义菜单和系统默认菜单同时显示的问题,不同平台有对应的解决方法:

Android平台

  • 方法1:重写onCreateContextMenu
    创建自定义WebView类,覆盖onCreateContextMenu方法,不调用父类方法即可阻止系统菜单弹出:
public class CustomWebView extends WebView {
    public CustomWebView(Context context) {
        super(context);
    }

    @Override
    protected void onCreateContextMenu(ContextMenu menu) {
        // 不调用super.onCreateContextMenu(menu),系统默认菜单就不会显示
    }
}
  • 方法2:设置自定义ActionMode回调
    如果需要保留部分系统功能但替换菜单,可以设置setActionModeCallback:
webView.setActionModeCallback(new ActionMode.Callback() {
    @Override
    public boolean onCreateActionMode(ActionMode mode, Menu menu) {
        // 返回false表示不创建系统默认的ActionMode
        return false;
    }

    @Override
    public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
        return false;
    }

    @Override
    public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
        return false;
    }

    @Override
    public void onDestroyActionMode(ActionMode mode) {
    }
});

iOS平台

  • 方法1:禁用用户交互中的选择功能
    如果不需要文本选择功能,直接关闭:
webView.allowsSelection = false
  • 方法2:自定义WKUIDelegate的菜单创建方法
    如果需要保留文本选择但替换菜单,实现WKUIDelegate的contextMenuConfigurationForElement方法,返回自定义配置:
class ViewController: UIViewController, WKUIDelegate {
    var webView: WKWebView!

    override func viewDidLoad() {
        super.viewDidLoad()
        webView.uiDelegate = self
    }

    func webView(_ webView: WKWebView, contextMenuConfigurationForElement elementInfo: WKContextMenuElementInfo, completionHandler: @escaping (UIContextMenuConfiguration?) -> Void) {
        // 返回nil会阻止系统默认菜单弹出,之后可以显示你的自定义菜单
        completionHandler(nil)
        // 在这里触发你的自定义菜单展示逻辑
    }
}

通用Web端补充方案

如果你的WebView加载的是自己可控的网页,也可以通过JS来辅助禁用系统菜单:

document.addEventListener('contextmenu', function(e) {
    e.preventDefault();
});

不过这种方式仅能阻止右键触发的菜单,对移动端长按选中文本唤起的系统菜单效果有限,建议结合原生平台的方法使用。

内容的提问来源于stack exchange,提问作者Taki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 05:37:10