iOS开发之UIWebView

来源:互联网 发布:产品宣传手册制作软件 编辑:程序博客网 时间:2024/05/01 14:41

  UIWebView在iOS开发中用于加载网页视图。我们可以在此基础上进行多种操作。闲来无事突然对这个控件感兴趣了,顺便记录一下自己的研究成果吧

  一、UIWebView最基本的操作

    self.webView = [[UIWebView alloc] initWithFrame:self.view.bounds];
    _webView.delegate = self;
          
    [self.view addSubview:_webView];
    [_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.baidu.com/"]]];

 二、UIWebView属性操作

    // 自动对页面进行缩放以适应屏幕
   _ webView.scalesPageToFit = YES;

    // 自动检测电话
   _ webView.dataDetectorTypes = UIDataDetectorTypePhoneNumber;

   // 设置背景透明

    _webView.backgroundColor = [UIColor clearColor];

三、UIWebView实现类似浏览器的导航动作

            [_webView reload];// 加载

            [_webView stopLoading];// 停止加载
            [_webView goBack]; // 返回

            [_webView goForward];// 前进

四、加载本地HTML页面
    NSString *localPageName = @"myPage";
    NSString *localPageFilePath = [[NSBundle mainBundle] pathForResource:localPageName ofType:@"html"];
    NSURL *localPageFileURL = [NSURL fileURLWithPath:localPageFilePath];
    [_webView loadRequest:[NSURLRequest requestWithURL:localPageFileURL]];

五、UIWebView调用javascript代码

    // 1.获取当前页面的URL
    NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];
    NSLog(@"%@",currentURL);
    
    // 2.获取页面title
    NSString *title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];
    NSLog(@"%@",title);

六、UIWebView添加手势

   最近一个项目其中一个页面是用webView加载h5,最近h5比较火。谁知今天产品突然告知我还要在加手势以及把原来的项目结构修改。what?我都做完好几天了突然来了很多奇葩需求。这只是心里想想,有需求还是要改。

   于是我先加了一个单点手势UITapGestureRecognizer,然而测试时才发现没反应。

   原因:webView上有scrollView,scrollView本身也有点击事件造成了冲突。

   解决方法:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    if (gestureRecognizer == self.tap)
    {
        return YES;
    }
    return NO;
}

总结,看似简单的控件,其实远远不止表面那么简单。作为一个优秀的程序员应该做到不仅会用也要多思考为什么这么用。探究原理理解逻辑。我也做了一份UIWebView的下拉刷新Demo,由于代码比较复杂就不放这里了。有需要的同学可以问我。

0 0
原创粉丝点击