UIWebView中Html中用JS调用OC方法及OC执行JS代码
Posted 刚刚888
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIWebView中Html中用JS调用OC方法及OC执行JS代码相关的知识,希望对你有一定的参考价值。
html代码: <html> <head> <title>HTML中用JS调用OC方法</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> [removed] function openAlbum() { // 打开相册(openMyAlbum为OC中的方法) [removed].href = ‘ios://openMyAlbum‘; } function openCamera() { // 打开相机(openMyCamera为OC中的方法) [removed].href = ‘ios://openMyCamera‘; } [removed] </head> <body> <br/> <br/> <br/> <input type="button" value="打开相机"> <br><br/> <input type="button" value="打开相册"> </body> </html> OC代码: #import "ViewController.h" @interface ViewController ()<UIWebViewDelegate> @property (weak, nonatomic) IBOutlet UIWebView *webview; - (IBAction)getTitle; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSURL *url = [[NSBundle mainBundle] URLForResource:@"test.html" withExtension:nil]; [self.webview loadRequest:[NSURLRequest requestWithURL:url]]; self.webview.delegate = self; self.webview.dataDetectorTypes = UIDataDetectorTypeAll; } #pragma mark UIWebViewDelegate方法 /** *开始加重请求拦截 */ -(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; } /** * OC执行JS代码 */ - (IBAction)getTitle { [self.webview stringByEvaluatingjavascriptFromString:@"alert(document.title);"]; } -(void)openMyAlbum { UIImagePickerController *vc = [[UIImagePickerController alloc]init]; vc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; [self presentViewController:vc animated:YES completion:nil]; } -(void)openMyCamera { UIImagePickerController *vc = [[UIImagePickerController alloc]init]; vc.sourceType = UIImagePickerControllerSourceTypeCamera; [self presentViewController:vc animated:YES completion:nil]; } @end
以上是关于UIWebView中Html中用JS调用OC方法及OC执行JS代码的主要内容,如果未能解决你的问题,请参考以下文章
iOS下JS与OC互相调用--WKWebView 拦截URL
iOS JS 和 OC交互 / JS 和 native 相互调用