WKWebView的OC與JS交互

在應(yīng)用中,有很多內(nèi)容是利用iOS原生的webView承載的H5去顯示的。所以,不可避免的會利用到OC與JS的交互。由于之前沒有接觸到這部分的內(nèi)容,一直對這個交互的使用場景很模糊,通過近期的需求開發(fā)理解了一下這部分的交互使用。以下是我的見解與大家分享一下,也可以多多指教,共同學(xué)習(xí):

一.主要使用場景:
1.獲取綁定JS方法的返回值;
2.在特定操作/時刻觸發(fā)JS方法;
3.將JS調(diào)用OC的結(jié)果返回給JS;

二.OC調(diào)用JS
在大部分交互中,是利用OC調(diào)用JS,也會為客戶端的開發(fā)人員節(jié)約很多成本。目前在iOS8之后webView主要使用的是WKWebView,它相比于UIWebView,具有加載速度更快,占用內(nèi)存少,支持了更多的HTML5特性的等特點(diǎn)。
我們可以利用- evaluateJavaScript:completionHandler:方法,調(diào)用JS的方法獲取到count,在回調(diào)中得到返回值。

OC調(diào)JS.png

也可以利用該方法傳值給JS

三.JS調(diào)用OC
相當(dāng)于提前埋好點(diǎn),等待注入的JS方法返回結(jié)果進(jìn)行相應(yīng)的操作。通過WKScriptMessageHandler的代理方法接收到相應(yīng)的WKScriptMessage并進(jìn)行處理。

1.在創(chuàng)建配置webView的時候注入JS


注入JS.png

2.利用WKScriptMessageHandler的代理方法接收WKScriptMessage進(jìn)行相應(yīng)操作


JS調(diào)OC.png

總結(jié):無論前端與客戶端的交互是誰調(diào)用誰,其實(shí)都是可以的,看業(yè)務(wù)的需求、交互而定。所以只需認(rèn)真分析交互的具體內(nèi)容是為了實(shí)現(xiàn)什么效果,如何配合即可。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容