除了常用到的UIWebView加载H5和交互之外,在开发中可能还会用到其他属性,下面就一一枚举出来分享给大家,也欢迎小伙伴们一起讨论,如有错误的地方欢迎大家指出。
1.获取当前webView的内容高度
NSString *fileHeight = [webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"];
获取当前webView的内容高度2.获取webView的页面内容
NSString *content = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.textContent"];
获取webView的页面内容3.获取当前页面的title
NSString *title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];
获取当前页面的title4.获取当前页面的URL(目前已知的两种方式)
(1)NSString *url = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];
(2)NSString *url = webView.request.URL.absoluteString;
5.获取环境变量(JS的context)
NSString *str = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
获取环境变量6.webView上长按出现button的问题
一般情况下,当webView加载的网页有一段一段的文字的时候,长按文字系统默认的会弹出拷贝、剪切等操作。假如不需要的话,那么那些弹出框就要隐掉了。隐掉的思路就是在webView上面添加一个长按手势从而取代系统的,下面就罗列下隐藏的方法:
[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitTouchCallout = 'none';"];
webView.userInteractionEnabled = YES;
[webView addGestureRecognizer:self.pressGS];
webView上长按但是仅仅设置以上属性是不够的,因为UILongPressGestureRecognizer类中有一个属性minimumPressDuration。他的默认时间是0.5s,所以要想你自定义的长按手势起作用,那么就需要将minimumPressDuration设置成小于0.5的。
minimumPressDuration这样在长按webView上的文字,就不会出现拷贝、剪切等操作了,即使将时间设为0.1s的话,也不会和点击(tap)手势产生冲突。
网友评论