1、概念
1)機(jī)制
a募疮、Objective-C語言調(diào)用JavaScript語言炫惩,是通過UIWebView的
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;
方法來實(shí)現(xiàn)的。該方法向UIWebView傳遞一段需要執(zhí)行的JavaScript代碼最后獲取執(zhí)行結(jié)果阿浓。
b他嚷、javaScript語言調(diào)用Objective-C語言,并沒有現(xiàn)成的API芭毙,但是有些方法可以達(dá)到相應(yīng)的效果筋蓖。具體是利用UIWebView的特性:在UIWebView的內(nèi)發(fā)起的所有網(wǎng)絡(luò)請(qǐng)求,都可以通過delegate函數(shù)得到通知退敦。后來針對(duì)這個(gè)問題有了iOS7新JavaScriptCore框架
2)Objective-C調(diào)用JavaScript代碼的時(shí)候是同步的
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;
3)JavaScript調(diào)用Objective-C代碼的時(shí)候可以看作是異步的(js中沒有多線程)
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
4)常見的JS調(diào)用
a.獲取頁面title
NSString *title = [webview stringByEvaluatingJavaScriptFromString:@"document.title"];
b.獲取當(dāng)前的URL
NSString *url = [webview stringByEvaluatingJavaScriptFromString:@"document.location.href"];
2粘咖、調(diào)用步驟:
1)定義html頁面的回調(diào)方法
2)在js頁面實(shí)現(xiàn)html頁面定義的回調(diào)方法
3)實(shí)現(xiàn)在oc中調(diào)用js方法的接口
4)調(diào)用(調(diào)用js方法)的接口