UIWebview中JavaScript与原生的交互

在开发中,经常在会使用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"] = ^() {
    };
}

[http://www.jianshu.com/p/d19689e0ed83]

你可能感兴趣的:(UIWebview中JavaScript与原生的交互)