随着现在H5的流行 越来越多的产品开始原生加H5的开发模式 当然这种互相交互的模式确实给App开发带来不少好处,互相弥补了各自不足之处,这篇文章就是对iOS中webView做的一个简单介绍
什么是UIWebView
UIWebView是iOS内置的浏览器控件
系统自带的Safari浏览器就是通过UIWebView实现的
UIWebView不但能加载远程的网页资源,还能加载绝大部分的常见文件
html\htm
pdf、doc、ppt、txt
mp4
……
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的加载过程
开始发送请求(加载数据)时调用这个方法
- (void)webViewDidStartLoad:(UIWebView*)webView;
请求完毕(加载数据完毕)时调用这个方法
- (void)webViewDidFinishLoad:(UIWebView*)webView;
请求错误时调用这个方法
- (void)webView:(UIWebView*)webViewdidFailLoadWithError:(NSError*)error;
UIWebView在发送请求之前,都会调用这个方法,如果返回NO,代表停止加载请求,返回YES,代表允许加载请求
- (BOOL)webView:(UIWebView*)webViewshouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType;