1、OC调用JS代码
在代理方法webViewDidFinishLoad:方法中调用JS代码
NSMutableString *js = [NSMutableString string];
[js appendString:@"var footer = document.getElementsByTagName('footer')[0];"];
[js appendString:@"footer.parentNode.removeChild(footer);"];
[webView stringByEvaluatingJavaScriptFromString:js];
2、JS调用OC代码
在代理方法
-(BOOL)webView: shouldStartLoadWithRequest: navigationType: 中 可拦截从html页面的请求
- 首先在html中自定义方法,例如:
function call(){
window.location.href = 'YH://call'
} - 在上述webView代理方法中将此链接拦截
NSString *url = request.URL.absoluteString;
NSRange range = [url rangeOfString:@"YH://"];
NSUInteger loc = range.location;
if (loc != NSNotFound){
NSString *method = [url subStringFromIndex:loc + range.length];//取得方法名
SEL sel = NSSelectFromString(method);//转成SEL
[self performSelector:sel withObject:nil];
}
这时候就会调用系统的call这个方法
- (void)call {
//将要实现的OC方法写在这里
}
3、WebViewJavascriptBridge
关于OC和JS的交互有个第三方库,貌似很好用给出个链接有兴趣的可以点击去<a href = '//www.greatytc.com/p/feec40aff59a'>这里</a>看看