swift -> WKWebview 长按 获取 html 标签
对应的程序包: https://github.com/mozilla-mobile/firefox-ios/archive/AuroraV1.zip
替换 系统本身的 长按超链接或图片等事件
//增加 UIGestureRecognizerDelegate 代理 因为要给 view 添加 长按事件 class ViewController:AAAA,UIGestureRecognizerDelegate{ //让 添加 的 长按事件 与 webView 的长按事件 并存,不添加不会触发 addGestureRecognizer 的长按 func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool { return true; } //避免 绑定的长按事件 触发webView 里的超链接 被触发 func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldBeRequiredToFailBy otherGestureRecognizer: UIGestureRecognizer) -> Bool { return true; } //长按后触发的方法 //原理是, 获取长按坐标 对应的 html 标签 ,然后 获取这个html标签的完整html代码 func longPressWeb(sender:UILongPressGestureRecognizer){ if(sender.state != .began){return;} let touchPoint = sender.location(in: webList[webCrt]); var htmlStr:NSString = NSString.init(format: "document.elementFromPoint(%f,%f).outerHTML", touchPoint.x,touchPoint.y) print("htmlStr:"+(htmlStr as String)) self.webList[webCrt].evaluateJavaScript(htmlStr as String, completionHandler: { (result, error) in if result != nil { print("yes has"); print(result); } else { print("no hasnot"); //self.webDoSome.logoBigSave(img_src: "", host: (self.webList[webCrt].url?.host)!); } }) } //\\ override func viewDidLoad() { //添加自定义长按事件 , 这里是添加给了 WKWebView 的父级,也可以直接添加给self.view let long = UILongPressGestureRecognizer(target: self, action: #selector(longPressWeb)); long.delegate = self webBox.addGestureRecognizer(long) // } //在webView 加载完后 注入JS 方法 屏蔽 系统的长按方法 //建议在 webView 加载的过程中也 注入该 JS 方法, 避免在未加载完时也可调用系统的长按 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { //屏蔽用户选择文字 //webList[webCrt].evaluateJavaScript("document.body.style.webkitUserSelect='none';", completionHandler: nil) //屏蔽长按 webList[webCrt].evaluateJavaScript("document.body.style.webkitTouchCallout='none';", completionHandler: nil) // } }
相关推荐
lupeng 2020-11-14
sjcheck 2020-11-10
sjcheck 2020-11-03
meylovezn 2020-08-28
owhile 2020-08-18
Francismingren 2020-08-17
pythonclass 2020-07-29
sunzhihaofuture 2020-07-19
爱读书的旅行者 2020-07-07
行吟阁 2020-07-05
tianqi 2020-07-05
行吟阁 2020-07-04
冰蝶 2020-07-04
lyg0 2020-07-04
owhile 2020-07-04
opspider 2020-06-28
lengyu0 2020-06-28
tianqi 2020-06-21
dadaooxx 2020-06-16