JS与OC的交互方式有三种:
1.UIWebviewDelegate
2.JavaScriptCore
3.WebViewJavascriptBridge
第一种对于一些交互事件较少的点击事件,通过UIWebviewDelegate的代理方法进行拦截,获取网页的URL地址,然后根据URL的信息进行相应的操作。
例如点击webView上的某一个图片,需要查看该图片的大图
接着,在代理方法中可
<pre name="code" class="objc">- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
//判断是否是单击
if (navigationType == UIWebViewNavigationTypeLinkClicked)
{
NSURL *url = [request URL];
//在此可以打开图片查看大图、或者根据URL进行相应参数的截取
if([[UIApplication sharedApplication]canOpenURL:url])
{
NSMutableArray *imageUrlArr=[[NSMutableArray alloc]init];
[imageUrlArr addObject:url.absoluteString];
NSMutableArray *photoes=[NSMutableArray arrayWithCapacity:imageUrlArr.count];
for (int i=0; i<imageUrlArr.count; i++) {
MJPhoto *photo=[[MJPhoto alloc]init];
photo.url=imageUrlArr[i];
[photoes addObject:photo];
}
MJPhotoBrowser * browser = [[MJPhotoBrowser alloc]init];
browser.currentPhotoIndex = 0;
[browser show];
}
return NO;
}
return YES;
}
最后,使用UIWebviewDelegate进行交互告一段落