@interface WebViewController ()<UIWebViewDelegate>
@property (weak, nonatomic) IBOutlet UIWebView *webView;
@property (weak, nonatomic) IBOutlet UIBarButtonItem *back;
@property (weak, nonatomic) IBOutlet UIBarButtonItem *go;
@property (weak, nonatomic) IBOutlet UIBarButtonItem *refresh;
@end
@implementation WebViewController
- (IBAction)back:(UIBarButtonItem *)sender {
[self.webView goBack];
}
- (IBAction)go:(UIBarButtonItem *)sender {
[self.webView goForward];
}
- (IBAction)refresh:(UIBarButtonItem *)sender {
[self.webView reload];
}
- (void)viewDidLoad {
[super viewDidLoad];
self.webView.delegate = self;
self.webView.scalesPageToFit = YES;//网页内容会自动进行屏幕自适应。
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]]];
// [self.webView loadHTMLString:@"<html><body><div style=\"color:red;font-size:10px;border:1px solid blue;\">我爱你,中国</div></body></html>" baseURL:nil];可以加载HTML文件。
// self.webView.scrollView.contentInset = UIEdgeInsetsMake(20, 20, 20, 20);控制显示界面的大小。
[self.webView loadRequest:[NSURLRequest requestWithURL:[[NSBundle mainBundle]URLForResource:@"test" withExtension:@"html"]]];
self.webView.dataDetectorTypes = UIDataDetectorTypeAll;//检测各种特殊字符串,包括数字,网址
}
-(void)webViewDidStartLoad:(UIWebView *)webView{
self.go.enabled = webView.canGoForward;
self.back.enabled = webView.canGoBack;
}
-(void)webViewDidFinishLoad:(UIWebView *)webView{
NSLog(@"%s",__func__);
}
-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{
self.go.enabled = webView.canGoForward;
self.back.enabled = webView.canGoBack;
}
2.代理中需要注意的一个方法,主要是用于拦截,可以用在WebView和JS的交互。
/**
* 每当webView即将发送请求之前,都会调用这个方法
*返回YES,表示允许加载这个请求。
*/
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
NSLog(@"%@",request.URL);
if ([request.URL.absoluteString containsString:@"life"]) {
}
return YES;
}