JS 與 OC 互動的三種方法
第一種:使用JavaScriptCore.framework框架,JS給OC傳值。
OC裡要實現的程式碼:
在webViewDidFinishLoad:方法裡編寫如下程式碼:
![2411244-443bc37e7081a22c.png](https://upload-images.jianshu.io/upload_images/2411244-443bc37e7081a22c.png)
其中:passValue 是自定義的一個函式名,要和JS程式碼裡傳值的函式名一致,得到的arg陣列裡面為JS那邊傳過來的引數。
JS裡要實現的程式碼:(很簡單)
![2411244-e37027ad4b088a16.png](https://upload-images.jianshu.io/upload_images/2411244-e37027ad4b088a16.png)
在需要給OC傳值的函式裡(例如:testClick())直接呼叫 passValue()函式,將值傳進去即可。
第二種:使用自定義url方法,JS給OC傳值。
JS裡要實現的程式碼:
![2411244-6bef963c62812378.png](https://upload-images.jianshu.io/upload_images/2411244-6bef963c62812378.png)
在需要給OC傳值的函式裡(例如:testClick())寫如上格式的程式碼。
其中 objc 是自定義的協議頭,cmd為自定義的函式名稱(我認為沒什麼用),hello和world為傳給OC的兩個值。
OC裡要實現的程式碼:
![2411244-5ff7269e4230d149.png](https://upload-images.jianshu.io/upload_images/2411244-5ff7269e4230d149.png)
第三種:使用WebViewJavascriptBridge三方庫實現JS與OC的相互傳值。
JS裡需要實現的程式碼:
![2411244-10556d42ca666488.png](https://upload-images.jianshu.io/upload_images/2411244-10556d42ca666488.png)
按鈕點選事件程式碼: 點選網頁上的按鈕向OC傳過去一個字典{'foo':'bar'},同時接收到OC傳過來的一個值response。
bridge.registerHandler 程式碼: OC向JS傳值時呼叫。
OC裡需要實現的程式碼:
![2411244-e54f939e8e6dfe1c.png](https://upload-images.jianshu.io/upload_images/2411244-e54f939e8e6dfe1c.png)
註釋裡寫的很清楚,這裡就不在贅述。
需要注意的是:不論哪方給哪方傳值,傳值的方法名稱與對應接收值的方法名稱要保持一致。
相關文章
- Cordova JS OC互動方法JS
- oc 與js 的原生互動JS
- OC WKWebView的JS與OC互動、Cookie管理WebViewJSCookie
- oc 與 js互動之vue.jsVue.js
- WebViewJavascriptBridge JS和OC互動WebViewJavaScriptJS
- iOS開發:網頁JS與OC互動(JavaScriptCore)iOS網頁JSJavaScript
- HTML5接入與OC互動HTML
- JavaScript 字串與json物件互轉的幾種方法JavaScript字串JSON物件
- swift3.0與OC的互動注意事項Swift
- OC與C++ 混編的檔案互動C++
- OC中陣列、字典的遍歷的三種方法陣列
- webview與JS的互動WebViewJS
- Flex與後臺互動的幾種方法詳解Flex
- Handler的三種互動場景
- js 與WKWebView 互動JSWebView
- WKWebView與JS互動WebViewJS
- C#實現Winform間的資料互動的三種方法C#ORM
- js解析url的三種方法JS
- iOS下JS與OC互相呼叫(三)--MessageHandleriOSJS
- 5種JavaScript和CSS互動的方法JavaScriptCSS
- android客戶端與服務端互動的三種方式Android客戶端服務端
- 【JS】JS陣列新增元素的三種方法JS陣列
- 解析Json字串的三種方法JSON字串
- WKWebView和WebView與JS的互動方式WebViewJS
- C++ 與 QML 之間進行資料互動的幾種方法C++
- ios/oc中的結構體 與字串互轉iOS結構體字串
- WebView與JS的互動,以及注意事項WebViewJS
- Android webview 與 js(Vue) 互動AndroidWebViewJSVue
- iOS 與 JS 互動手冊 - JavaScriptCoreiOSJSJavaScript
- iOS 與JS Html常見互動iOSJSHTML
- angularjs與伺服器互動AngularJS伺服器
- python與mysql互動中的各種坑PythonMySql
- WPF和js互動 呼叫窗體中的方法JS
- JS陣列隨機排序的三種方法JS陣列隨機排序
- 三種常用的js陣列去重方法JS陣列
- 5種你未必知道的JavaScript和CSS互動的方法JavaScriptCSS
- WKWebView與Js實戰(OC版)WebViewJS
- Flutter使用JsBridge與WebView互動FlutterJSWebView