新GET一種處理ios中UIWebView與js交互的方法嫂丙,寫(xiě)出來(lái)跟大家分享一下D锔啊!跟啤!
該方法借用了ios的JavaScriptCore這個(gè)庫(kù)诽表,從加載好的網(wǎng)頁(yè)中獲取ios端想要的參數(shù)。
如圖就是借用JSContext這個(gè)類的實(shí)例對(duì)象獲取網(wǎng)頁(yè)對(duì)應(yīng)的js文件的內(nèi)容隅肥,其中context[@"share"]這個(gè)share就是ios與網(wǎng)頁(yè)js文件約定的一個(gè)方法函數(shù)名竿奏。
而且在寫(xiě)js時(shí),這個(gè)share()并不需要真正實(shí)現(xiàn)腥放,如果報(bào)錯(cuò)的話可以寫(xiě)一個(gè)空方法 function share(){}; ?來(lái)聲明一下就行泛啸,哦要注意的是,如果你在這個(gè)share方法寫(xiě)了內(nèi)容秃症,這個(gè)內(nèi)容是不執(zhí)行的(試了N次的結(jié)論)候址。
而里面的具體參數(shù)的個(gè)數(shù)和設(shè)置什么樣的參數(shù)可以根據(jù)自己的需要設(shè)置,[JSContext currentArguments];返回的就是我們需要的參數(shù)數(shù)組种柑,JSValue的父類是NSObject岗仑,jsVal.toString返回的都是字符串。
當(dāng)然以上內(nèi)容是js方法調(diào)用oc聚请。
如果是oc調(diào)用js荠雕,
[self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"showAlert('%@')",@"oc調(diào)用了js的內(nèi)容"]]; ? ? // ----> oc代碼
function showAlert(msg){alert(msg);}? ? // -----> js代碼
要注意的是在oc寫(xiě)showAlert方法名和參數(shù)拼接時(shí),是這樣的('%@')而不是通常oc代碼中的(%@),否則運(yùn)行失斦ū啊既鞠!
個(gè)人總結(jié),不喜勿噴8俏摹损趋!