Невозможно скопировать текст из WKWebview в буфер обмена - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть WKWebview, который открывает Google документ в текстовом формате. Я пытался скопировать текст в представлении, чтобы в моем коде была строка

Я использовал пользовательский UIMenJAuItem "Parse", когда выбрал, выделил весь текст и скопировал его в буфер обмена. Но проблема в том, что буфер обмена не может загрузить текст с первого раза.

Я также пытался оценить сценарии Java на экране, которые не работали из-за безопасности содержимого Apple.

есть ли вообще, могу ли я добиться результата?

Ниже приведены мои попытки, которые не увенчались успехом.

//Thorugh web view

extension ViewController:WKNavigationDelegate{
    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        webView.evaluateJavaScript("document.body.innerText") { (doc, error) in
            if doc != nil
            {print(doc!)}
            if let e = error
                {print(e.localizedDescription)}
        }
    }
    func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Swift.Void){
        return decisionHandler(.allow)
    }

}

По UIMenuItem

  override func viewDidLoad() {
        let menuItem = UIMenuItem(title: "Parse", action: #selector(ViewController.parse(_:)))

        UIMenuController.shared.menuItems = [menuItem]
}


@objc func parse(_ sender:UIMenuItem){
        webView.selectAll(sender)
        self.webView.copy(UIApplication.shared)
        print(UIPasteboard.general.string!)
    }

1 Ответ

0 голосов
/ 11 сентября 2018

Я решил проблему.

Чтобы скопировать текст в буфер обмена, вам необходимо выгрузить веб-страницу из вида. т.е. просто применить, выбрать все, скопировать. Затем, если вы загрузите новую веб-страницу в веб-просмотр, вы можете скопировать текст в UIPasteBoard.general.string

...