美文网首页iOS开发程序员
iOS--H5和iOS的那些事(二)

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

作者: 乐逍遥的笔记 | 来源:发表于2017-12-04 16:46 被阅读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)手势产生冲突。

    相关文章

      网友评论

        本文标题:iOS--H5和iOS的那些事(二)

        本文链接:https://www.haomeiwen.com/subject/hfutixtx.html