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

时间:2017-06-26 06:47:01

标签: wkwebview uimenucontroller

一旦用户选择文本,我想实现我的自定义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,但在WKWebviewcanPerformAction我们不再采取copy, lookup and share行动,因此这些人不会被删除。

1 个答案:

答案 0 :(得分:0)

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

它对我有用! 希望能帮到你。