HTML代码:
<html>
<head>
<title>HTML中用JS调用OC方法</title>
<meta http-equiv="Content-Type"content="text/html; charset=UTF-8">
<script>
function test()
{
alert("test alert...");
return "abcd";
}
</script>
<body>
<br/>
<br/>
<br/>
<a href='ios://openMyAlbum'>打开相机</a><br><br/>
<a href = 'ios://openMyCamera'>打开相册</a>
</body>
</html>
#OBJECT-C
-(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString
*urlstr = request.URL.absoluteString;
NSRange
range = [urlstr
rangeOfString:@"ios://"];
if
(range.length!=0)
{
NSString
*method = [urlstr
substringFromIndex:(range.location+range.length)];
SEL
selctor = NSSelectorFromString(method);
[self
performSelector:selctor
withObject:nil];
}
return
YES;
}
-(void)openMyAlbum
{
UIImagePickerController
*vc = [[UIImagePickerController
alloc]init];
vc.sourceType
= UIImagePickerControllerSourceTypePhotoLibrary;
[self
presentViewController:vc
animated:YES
completion:nil];
}
-(void)openMyCamera
{
[_webView stringByEvaluatingJavaScriptFromString:@"test();"];
return;
UIImagePickerController
*vc = [[UIImagePickerController
alloc]init];
vc.sourceType
= UIImagePickerControllerSourceTypeCamera;
[self
presentViewController:vc
animated:YES
completion:nil];
}
- (void)viewDidLoad {
[super viewDidLoad];
_webView = [[UIWebView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:_webView];
NSString *path = [[NSBundle mainBundle] pathForResource:@"test.html" ofType:nil];
NSURL *url = [NSURL fileURLWithPath:path];
NSURLRequest *req = [[NSURLRequest alloc] initWithURL:url];
_webView.delegate = self;
_webView.dataDetectorTypes = UIDataDetectorTypeAll;
[_webView loadRequest:req];
// Do any additional setup after loading the view, typically from a nib.
}