WKWebview:从菜单中删除复制、查找、共享按钮并显示自定义

Posted

技术标签:

【中文标题】WKWebview:从菜单中删除复制、查找、共享按钮并显示自定义【英文标题】:WKWebview:Remove Copy,lookup,share button from Menu and show custom 【发布时间】:2017-06-26 06:47:00 【问题描述】:

一旦用户选择文本,我想实现我的自定义 MenuController。我正在使用下面的代码来做到这一点,我将 WKWebview 子类化并在下面实现

override init(frame: CGRect, configuration: WKWebViewConfiguration) 

    super.init(frame: frame, configuration: WKWebViewConfiguration())
    enableCustomMenu()


func enableCustomMenu() 
    let menuController = UIMenuController.shared
    let testmenu = UIMenuItem(title: "Test", action: #selector(test))
    menuController.menuItems = [testmenu]

func test()
    var text = ""
    self.evaluatejavascript("document.getSelection().toString()")  (data, error) in
        text = data as! String
    
    print(text)

override func becomeFirstResponder() -> Bool 
    return true

override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool 
    switch action 
    case #selector(test):
        return true

    default:
        return false
    

这曾经对UIWebview 工作得很好,但在WKWebview 中,在canPerformAction 中我们不再获得copy, lookup and share 操作,因此这些人不会被删除。

【问题讨论】:

你找到解决办法了吗? 不幸的是没有 【参考方案1】:

我也有这个问题,我发现你可以通过重写函数canPerformAction来自定义你的WKwebview 这是关于它的article。

它对我有用! 希望对你有所帮助。

【讨论】:

链接可能会中断。你应该edit你的答案包括来自回答原始问题的链接的相关信息。

以上是关于WKWebview:从菜单中删除复制、查找、共享按钮并显示自定义的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 WKWebView 上指定位置的信息?

关于在 Swift 中删除 WKWebView 中的 UIMenuController 默认 menuItems 的问题

从 UIMenuController 中删除复制、查找和共享

ios 更改默认共享菜单项的文本 - 复制/粘贴/删除

IOS Swift WkWebview如何屏蔽长按

iOS WKWebView长按自定义菜单功能