iOS开发-UIWebView详解

UIWebView介绍

UIWebView是iOS内置的浏览器控件;
系统自带的Safari浏览器就是通过UIWebView实现的;

UIWebView不但能加载远程的网页资源,还能加载绝大部分的常见文件
html\htm
pdf、doc、ppt、txt
mp4
… …

eg:
加载本地PPT、HTML文件

NSURL *url = [NSURL fileURLWithPath:@"/Users/xiaomage/Desktop/07-NSURLSession.pptx"];
    //加载网页
    [self.webView loadRequest:[NSURLRequest requestWithURL:url]];


NSURL *url = [[NSBundle mainBundle] URLForResource:@"text.html" withExtension:nil];
    //加载网页
    [self.webView loadRequest:[NSURLRequest requestWithURL:url]];
    //设置电话、地址、网址等探查
    self.webView.dataDetectorTypes = UIDataDetectorTypeAll;

UIWebView常见属性和方法

// UIWebView常用的加载资源的方法
- (void)loadRequest:(NSURLRequest *)request;

//重新加载(刷新)
- (void)reload;

//停止加载
- (void)stopLoading;

//回退
- (void)goBack;

//前进
- (void)goForward;

//需要进行检测的数据类型
@property(nonatomic) UIDataDetectorTypes dataDetectorTypes

//是否能回退
@property(nonatomic,readonly,getter=canGoBack) BOOL canGoBack;

//是否能前进
@property(nonatomic,readonly,getter=canGoForward) BOOL canGoForward;

//是否正在加载中
@property(nonatomic,readonly,getter=isLoading) BOOL loading;

//是否伸缩内容至适应屏幕当前尺寸
@property(nonatomic) BOOL scalesPageToFit;

UIWebView代理

//成为UIWebView的代理,遵守UIWebViewDelegate协议,就能监听UIWebView的加载过程

//UIWebView在发送请求之前,都会调用这个方法,如果返回NO,代表停止加载请求,返回YES,代表允许加载请求
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;

//开始发送请求(加载数据)时调用这个方法
- (void)webViewDidStartLoad:(UIWebView *)webView;

//请求完毕(加载数据完毕)时调用这个方法
- (void)webViewDidFinishLoad:(UIWebView *)webView;

//请求错误时调用这个方法
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;

关于WKWebView自适应屏幕宽度问题

在设置wkwebview的frame时,宽度直接用屏幕宽,若父视图的宽度不是屏幕宽,就用屏幕宽度 减 相应的值。

_wkWebView = [[WKWebView alloc]initWithFrame:CGRectMake(0, CGRectGetMaxY(self.titleView.frame), [UIScreen mainScreen].bounds.size.width,100)];

你可能感兴趣的:(iOS开发-UIWebView详解)