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)];
来源: http://www.jianshu.com/p/59f41d19d0ab