iOS开发程序员

iOS--H5和iOS的那些事(二)

2017-12-04  本文已影响61人  乐逍遥的笔记

除了常用到的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"];

获取当前页面的title

4.获取当前页面的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)手势产生冲突。

上一篇 下一篇

猜你喜欢

热点阅读