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 来判断)