Objective-C Learning Notes - UIWebView
在 iOS 应用中, Web 视图(UIWebView)是没有边框的 safari 窗口,可以将其加入应用程序并以编程方式进行控制. 通过使用这个类可以显示 HTML, 加载网页及支持缩放.
UIWebView 还可以用于显示如下文件:
HTML, 图像和 CSS
Word 文档(.doc/.docx)
Excel 电子表格(.xls/.xlsx)
Keynote 演示文稿(.key.zip)
Numbers 电子表格(.numbers.zip)
Pages 文档(.pages.zip)
PDF文档(.pdf)
PowerPoint 演示文档(.ppt/pptx)
以上这些类型的文件,既可以作为资源加入到项目中并在 UIWebView 视图中显示他们,也可以访问远程服务器中得这些类型文档或读取 iOS 设备存储空间中得这些文件.
要将内容加载到 UIWebView 视图中,需要使用 NSURL和 NSURLRequest. 这两个类能够操作 URL,并将其转换为远程资源请求.
NSURL *appleURL = [[NSURL alloc] initWithString:@"http://www.xxx.com/"]; NSURLRequest *urlRequest = [[NSURLRequest alloc] requestWithURL: appleURL];
最后将该请求传递给 UIWebView 视图的 loadRequest 方法,该方法将接管工作并处理加载过程.
[appleView loadRequest:urlRequest];
另外一种显示方式是将 HTML 加载到 UIWebView 视图中,例如将 HTML 代码存储在一个 NSString 中,则而已用 loadHTMLString:baseURL 加载并显示 HTML 内容.
[htmlView loadHMLString: myHTML baseURL:nil];
实现:
#import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UIWebView *myWebView; @end
#import "ViewController.h" @interface ViewController () @end @implementation ViewController @synthesize myWebView; - (void)viewDidLoad { [super viewDidLoad]; self.title = @"uiwebview"; myWebView.frame = self.view.bounds; myWebView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; myWebView.scalesPageToFit = YES; [self.view addSubview:myWebView]; NSURL *baiduURL = [NSURL URLWithString:@"http://www.baidu.com"]; NSURLRequest *baiduRequest = [NSURLRequest requestWithURL:baiduURL]; [myWebView loadRequest:baiduRequest]; // Do any additional setup after loading the view, typically from a nib. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
UIWebView中页面控制的方法:
reload 刷新页面
stopLoading 停止 (通过 loading 来判断)
goBack 后退 (通过 canGoBack 来判断)
goForward 前进(通过 canGoForward 来判断)