美文网首页iOS的心路里程
iOS控件--UIWebView--网页显示控件

iOS控件--UIWebView--网页显示控件

作者: 罂粟之城 | 来源:发表于2018-12-29 15:36 被阅读2次

    UIWebView可以实现一个Web浏览器,可以实现静态加载HTML、动态URL地址,可以实现网页导航,以及调用JavaScript等

    还有一个重要的功能就是 可以加载PDF文件,并且在加载完成后会回调Delegate方法

    程序可以为UIWebView实现UIWebViewDelegate协议,这个协议中包含如下方法:

        - webView:shouldStartLoadWithReaquest:navigationType://将要开始加载制定URL对应的网页时激发该方法。
        - webViewDidStartLoad: //开始加载时激发该方法。
        - webViewDidFinishLoad://加载完成时激发该方法。
        - webView:didFailLoadwithError://加载出现错误时激发该方法。
    

    UIWebView可适用的那些属性

    self.webview.scrollView.bounces=NO;
    
    self.webView.userInteractionEnabled=YES;
    
    self.webView.scalespageToFit = YES;  //自动对页面进行缩放以适应屏幕
    

    UIWebView的使用:

    >> 1.加载一个动态URL地址的步骤如下:
        1.实例化一个UIWebView
            UIWebView *webView=[[UIWebView alloc]initWithFrame:self.view.bounds];
            [webVidew addSubview:webView];
        2.获得NSURLRequest实例
            NSString *str=@"https://www.baidu.com";
            NSURL *url=[NSURL URLWithString:str];
            NSURLRequest *request=[NSURLRequest requestWithURL:url];
        3.调用loadRequest方法加载网页内容
            [webView loadRequest:request];
    
    >> 2.使用UIWebView加载静态的HTML页面
        UIWebView *webView=[[UIWebView alloc]initWithFrame:self.view.bounds];
        NSString *str=@"Hello<b>WebView</b>,<a href=http://developer.apple.com>More...</a>";
        [webView loadHTMLString:str baseURL:nil];
        [webView addSubview:webView];
    
    >> 3.可以为UIWebView设置代理监控UIWebView的加载过程。
    >> 4.UIWebView和网页的JavaScript之间可以进行相互通信。
    >> 5. 使用 UIWebView 加载PDF文件

    UIWebView加载

        UIWebView *pdfWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, disTopH, kScreenWidth, kScreenHeight-disTopH)];
        pdfWebView.backgroundColor = [UIColor whiteColor];
        pdfWebView.delegate = self;
        
        // pdfPath -- 是PDF 文件的存储路径,如果存放在工程中,使用 [[NSBundle mainBundle]pathForResource:@"xxx" ofType:@"pdf"]获取即可。
        NSURL *pdfFilePathURL = [NSURL fileURLWithPath:pdfPath];
        NSURLRequest *request = [NSURLRequest requestWithURL: pdfFilePathURL];
        [pdfWebView loadRequest:request];
        //使文档的显示范围适合UIWebView的bounds
        [pdfWebView setScalesPageToFit:YES];
        [self.view addSubview:pdfWebView];
    
        //  12.0后为了关闭加载过程中的进度条或者其他操作
        // 可使用延迟的方法,在PDF加载完成后作出相应的操作
            if (@available(iOS 12.0,*)) {
            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
                NSLog(@"使用延时关闭进度条的加载");
                // 在PDF加载完成后,作出相应的操作即可
                //[MBProgressHUD hideHUDForView:self.view];
            });
        }
        
    

    UIWebView代理 -- 但是在 iOS 12.0的FrameWork中首次出现此方法,API_DEPRECATED

    #pragma mark - webView delegate
    - (void)webViewDidFinishLoad:(UIWebView *)webView{
        NSLog(@"pdf在UIWebView加载完成");
        NSLog(@"log-输出self查看:%@",self);
        [MBProgressHUD hideHUDForView:self.view];   
    }
    
    以上是对 UIWebView 控件的描述和使用,不以偏概全,只授之以渔,有更好的操作也会及时更新。如果您有UIWebView控件的更好使用欢迎留言交流!

    相关文章

      网友评论

        本文标题:iOS控件--UIWebView--网页显示控件

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