OC與JS交互,經(jīng)歷了三個(gè)階段,第一個(gè)階段,是用JavaScriptCore.framework框架,直接用方法名調(diào)起的,但是安卓不能用,所以第二種階段,是加.的,但是由于UIWebView的一些問(wèn)題(獲取h5必須是在網(wǎng)頁(yè)加載完畢中進(jìn)行,但h5需要獲取地理坐標(biāo)必須在沒(méi)有完全進(jìn)入頁(yè)面的時(shí)候進(jìn)行獲取,所以這樣就會(huì)出一些問(wèn)題),又換成了SDWebView
第一階段:
JavaScriptCore.framework的簡(jiǎn)單使用--JS與OC的交互篇
javaScriptCore是一種JavaScript引擎,主要為webKit提供腳本處理能力,javaScriptCore是開(kāi)源webkit的一部分,他提供了強(qiáng)大的整合能力.下面以JS調(diào)用OC方法為例,OC調(diào)用JS為例說(shuō)明.
JSContext, JSContext是代表JS的執(zhí)行環(huán)境,通過(guò)-evaluateScript:方法就可以執(zhí)行一JS代碼
JSValue, JSValue封裝了JS與ObjC中的對(duì)應(yīng)的類(lèi)型,以及調(diào)用JS的API等
JSExport, JSExport是一個(gè)協(xié)議,遵守此協(xié)議,就可以定義我們自己的協(xié)議,在協(xié)議中聲明的API都會(huì)在JS中暴露出來(lái),才能調(diào)用
問(wèn)題一:微信登錄成功之后,返回到應(yīng)用會(huì)出現(xiàn)空白,所以需要把OC調(diào)h5放到主線程
需要放到主線程dispatch_async(dispatch_get_main_queue(), ^{
});