在开发中,经常在会使用UIWebview的时候,会有一些原生和网页的交互。会有,网页调用原生方法,也会出现原生向网页传值。下面是总结的一些交互方式
1.原生向网页传值,post与get均可
1.1网页调用原生方法,利用iOS7之后的JavaScriptCore/JavaScriptCore.h框架
1.1post
NSString *postStr = [NSStringstringWithFormat:@"token=%@",g_config.token];
NSData *data = [postStr dataUsingEncoding:NSUTF8StringEncoding];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL: [NSURL URLWithString:_urlStr]];
[request setHTTPMethod: @"POST"];
[request setHTTPBody: data];
[agencyWebView loadRequest:request];
1.2get
NSString *strPath = [NSString stringWithFormat:@"%@%@&NSLevel=0",_urlString,allServiceStr];
urlRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:strPath]];
2网页调用原生
//网页与原生交互【网页调用log方法即可传值给原生,并执行回掉内容中的任意方法】
- (void)JavaScriptAndNativeInteraction:(UIWebView *)webView {
JSContext *context = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
context[@"log"] = ^() {
};
}