//
// ViewController.m
// UIWebView的基本使用
#import "ViewController.h"
#import "MBProgressHUD+MJ.h"
@interface ViewController ()<UIWebViewDelegate>
@property (weak, nonatomic) IBOutlet UIWebView *webView;
@end
@implementation ViewController
/*
UIWebView:浏览器
HTML\TXT\PDF\DOC\MP4\PPT
*/
/*
iOS9 HTTP 不能正常使用的解决办法:
1.在Info.plist中添加NSAppTransportSecurity类型Dictionary。
2.在NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES
*/
- (void)viewDidLoad {
[super viewDidLoad];
//1.创建请求
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
//2.设置
self.webView.delegate = self;
self.webView.scalesPageToFit = YES; //伸缩内容以适应屏幕
//2.加载请求
[self.webView loadRequest:request];
}
/**
* OC中执行JavaScript代码
*/
- (void)clearAd
{
//执行JavaScript代码
[self.webView stringByEvaluatingJavaScriptFromString:@"alert(1);"];
//把网页HTML中的header和footer元素删掉
[self.webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('header')[0].remove();"];
[self.webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('footer')[0].remove();"];
//获取当前网页的标题
[self.webView stringByEvaluatingJavaScriptFromString:@"document.title"];
}
/**
* 打开系统相册
*/
- (void)openMyAlbum
{
UIImagePickerController *ipc = [[UIImagePickerController alloc]init];
ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentViewController:ipc animated:YES completion:nil];
}
#pragma mark - UIWebViewDelegate
/**
* 当webView每次发一个请求都会调用这个方法
*/
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
//拦截HTML中的网络请求
//如果地址有"ios://"表示要调用OC中的方法
//以达到网页和OC交互
NSString *url = request.URL.absoluteString;
NSRange range = [url rangeOfString:@"ios://"];
if(range.length != 0){
NSString *method = [url substringFromIndex:range.location + range.length];
// NSLog(@"%@",method); //openMyAlbum
//将方法名转为SEL类型
SEL selector = NSSelectorFromString(method);
[self performSelector:selector withObject:nil];
}
return YES;
}
/**
* 开始加载的时候调用
*/
- (void)webViewDidStartLoad:(UIWebView *)webView
{
[MBProgressHUD showMessage:@"正在加载中..."];
}
/**
* 加载完毕
*/
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[MBProgressHUD hideHUD];
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{}
@end
2.html中的js代码
<script type="text/javascript">
function openAlbum()
{
//打开相册(执行OC中的代码)
window.location.href="ios://openMyAlbum";
//“openMyAlbum”和OC的方法同名
}
</script>