iOS JS 交互之利用系統JSContext實現 JS調用oc方法


ios js 交互分為兩塊:

1.oc調用js 

這一塊實現起來比較簡單,

我的項目中加載的是本地的html,js,css,需要注意的是當你向工程中拖入這些文件時,選擇如下操作,(拖入的文件夾是藍色的,相對路徑),不然css,js 的路徑會存在問題

加載本地html:

oc調用js:一句代碼搞定

 

2.js 調用oc

  js調用oc又分為兩種:

 1.js端是直接調用方法

 

這里就要說到ios7才推出的一個新的api    JavaScriptCore,首先我們引入這個類,並初始化一個JSContext對象

在webViewDidFinishLoad方法里

此處通過當前webView的鍵獲取到jscontext

將我們的context對象與js方法建立橋接聯系,

其中test1表示我們js里面的方法名,這個名字要你和后台約定好一樣才行,ok,完事

2.js端通過對象調用方法

說到對象調方法我們首先肯定得有個對象,所以我們首先需要創建一個js交互類,並聲明和實現相應的交互方法,在這里需要注意的是我們需要在這個自定義交互類里面導入JavaScriptCore框架,聲明一個遵從於JSExport協議的協議(有點繞,看圖),在這個協議里聲明我們的交互方法,最后讓我們的交互類遵從與我們自定義的協議

在交互類的.m中實現相應的js交互方法,並實現我們想要的操作

注意到圖上的 JSExportAs(showconfirm, - (void)showconfirm:(NSString*)str Scripts:(NSString*)scripts); 這個方法沒有,這個方法的作用是當js端的方法有兩個或兩個以上參數時,我們需要讓- (void)showconfirm:(NSString*)str Scripts:(NSString*)scripts這個方法代替 showconfirm 這個方法,因為oc端的方法名必須和js端的保持一致,不然就不會調用

最后在我們的webViewDidFinishLoad方法里初始化我們的交互對象,並讓 context 與之建立聯系,ok,完事

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM