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

标签:ios, object-c, uiwebview