window.webkit.messageHandlers.webViewApp.postMessage({get_selection_txt:rng_string});
private lazy var articleWeb : WKWebView = {
let webView = WKWebView.init(frame: view.bounds, configuration: configutation)
webView.allowsBackForwardNavigationGestures = true
webView.navigationDelegate = self
webView.uiDelegate = self
webView.scrollView.delegate = self
return webView
}()
private lazy var configutation: WKWebViewConfiguration = {
let config = WKWebViewConfiguration()
config.userContentController.addUserScript(String.userScript())
config.userContentController.add(WeakScriptMessageDelegate.init(delegate: self), name: "webViewApp")
return config
}()
private lazy var progressView : UIProgressView = {
let pp = UIProgressView.init(frame: CGRect.init(x: 0, y: 64, width: view.frame.size.width, height: 2))
pp.tintColor = UIColor.blue
pp.backgroundColor = UIColor.lightGray
pp.transform = CGAffineTransform.init(scaleX: 1, y: 1)
return pp
}()
func Menu() -> Void {
let menu = UIMenuController.shared
let item = UIMenuItem.init(title: "划重点", action: #selector(point))
let shareItem = UIMenuItem.init(title: "分享", action: #selector(share))
let copyItem = UIMenuItem.init(title: "拷贝", action: #selector(copyAction))
menu.menuItems = [item,shareItem,copyItem]
menu.arrowDirection = .default
menu.setTargetRect(articleWeb.bounds, in: articleWeb)
menu.setMenuVisible(true, animated: true)
}
@objc func point() {
articleWeb.evaluateJavaScript("get_selection()", completionHandler: nil)
}
@objc func share() {
articleWeb.evaluateJavaScript("get_selection_txt()", completionHandler: nil)
}
@objc func copyAction() {
articleWeb.evaluateJavaScript("window.getSelection().toString()") { (object, error) in
print(object!)
}
}
extension ArticleDetialViewController: WKScriptMessageHandler{
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
print(message.body)
}
}