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