1. 基本使用- OC調(diào)JS
- (void)webViewDidFinishLoad:(UIWebView*)webView{
//js方法名+參數(shù) NSString* jsCode = [NSString stringWithFormat:@"report('%@')",self.jsStr];//調(diào)用html頁面的js方法
[webView stringByEvaluatingJavaScriptFromString:jsCode]; }
JS調(diào)OC
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType{
// 攔截url,進行處理returnYES; }
2.使用JavaScriptCore框架(ios7以后)
JavaScriptCore中類及協(xié)議
JSContext:JavaScript 運行的上下文環(huán)境
JSValue:JavaScript 和 Objective-C 數(shù)據(jù)和方法的橋梁
JSExport:這是一個協(xié)議烟零,如果采用協(xié)議的方法交互,自己定義的協(xié)議必須遵守此協(xié)議
JSManagedValue:管理數(shù)據(jù)和方法的類
JSVirtualMachine:處理線程相關(guān),使用較少JavaScript 調(diào)用 Native使用 JavaScriptCore 進行 JS 和 Native 的交互察绷,無論想要實現(xiàn)什么樣的效果都需要獲得一個有效的 JSContext 實例卵惦,即一個有效的 JS 運行的上下文唠倦。
3.使用第三方庫WebViewJavascriptBridge