OC与JS交互的4种方式
1 UIWebView
1.1 直接URL拦截
JS调OC
shouldStartLoadWithRequest
OC调JS
stringByEvaluatingJavaScriptFromString
1.2 JS
JS调OC
self.jsContext[@"showMessage"]=^(){}这样的block回调执行代码块
OC调JS
jsContext evaluateScript
jsContext callWithArguments
warning:异常收集 JSContext.exceptionHander=^(JSContext *context,JSValue *exception){}
全局变量. [self.jsContext evaluateScript:@"var arr = [3,'Cooci','abc'];"
JS操作对象 JSExport
循环引用
block回来是子线程异步
2 WKWebView
2.1拦截URL
JS调用OC
OC调用JS
2.2MessageHandler
OC调用JS
JS调用OC
3 WebViewJavascriptBridge
JS调用OC
setupWebViewJavascriptBridge()调用
bridge.registerHandler('OCCallJSFunction',function(data,responseCallback){})所有要被调用OC的,都需要在这里注册
WebViewJavascriptBridge.callHandel('jsCallsOC',{'Cooci':'18'},function(response)JS调用OC的区域,可以穿参数)
OC调用JS
[self.wjb registerHandler:@"jsCallsOC" handler:^(id data,WVJBResponseCallback responseCallback){}];被JS调用回来的地方
[self.wjb callHandler:@"ocCallJSFunction" data:@"oc调用JS",responseCallback:^(id responseData){}];oc调用JS
4 Cordova
网友评论