JS 與 OC 互動的三種方法
第一種:使用JavaScriptCore.framework框架,JS給OC傳值。
OC裡要實現的程式碼:
在webViewDidFinishLoad:方法裡編寫如下程式碼:
其中:passValue 是自定義的一個函式名,要和JS程式碼裡傳值的函式名一致,得到的arg陣列裡面為JS那邊傳過來的引數。
JS裡要實現的程式碼:(很簡單)
在需要給OC傳值的函式裡(例如:testClick())直接呼叫 passValue()函式,將值傳進去即可。
第二種:使用自定義url方法,JS給OC傳值。
JS裡要實現的程式碼:
在需要給OC傳值的函式裡(例如:testClick())寫如上格式的程式碼。
其中 objc 是自定義的協議頭,cmd為自定義的函式名稱(我認為沒什麼用),hello和world為傳給OC的兩個值。
OC裡要實現的程式碼:
第三種:使用WebViewJavascriptBridge三方庫實現JS與OC的相互傳值。
JS裡需要實現的程式碼:
按鈕點選事件程式碼: 點選網頁上的按鈕向OC傳過去一個字典{'foo':'bar'},同時接收到OC傳過來的一個值response。
bridge.registerHandler 程式碼: OC向JS傳值時呼叫。
OC裡需要實現的程式碼:
註釋裡寫的很清楚,這裡就不在贅述。
需要注意的是:不論哪方給哪方傳值,傳值的方法名稱與對應接收值的方法名稱要保持一致。
相關文章
- Cordova JS OC互動方法JS
- WebViewJavascriptBridge JS和OC互動WebViewJavaScriptJS
- js解析url的三種方法JS
- js 與WKWebView 互動JSWebView
- 【JS】JS陣列新增元素的三種方法JS陣列
- flash如何與js互動?JS
- WKWebView和WebView與JS的互動方式WebViewJS
- Android webview 與 js(Vue) 互動AndroidWebViewJSVue
- WebView與JS的互動,以及注意事項WebViewJS
- C++ 與 QML 之間進行資料互動的幾種方法C++
- JavaScript 字串與json物件互轉的幾種方法JavaScript字串JSON物件
- python與mysql互動中的各種坑PythonMySql
- Flutter WebView與JS互動簡易指南FlutterWebViewJS
- 本地啟動服務的三種方法
- 淺談OC物件初始化的三種姿勢物件
- Android中js呼叫java本地方法的三種方式AndroidJSJava
- JS原生互動JS
- GraphQL.js 與服務端互動的新方式JS服務端
- iOS與JS互動之UIWebView-JavaScriptCore框架iOSJSUIWebViewJavaScript框架
- 動態ip代理的三種使用方法
- 常見的三種多媒體互動展廳介紹
- 利用HTML5,無JS實現各種互動效果HTMLJS
- Android webview JS 互動AndroidWebViewJS
- iOS與JS互動之UIWebView協議攔截iOSJSUIWebView協議
- 獲取爬蟲動態IP的三種方法爬蟲
- 三種動態控制SAP CRM WebClient UI assignment block顯示與否的方法WebclientUIBloC
- Android SDK使用了JS橋接方法實現與H5互動 混淆問題AndroidJS橋接H5
- js字串中的三種引號JS字串
- js的三種非同步處理JS非同步
- Flutter 與 Android 的互動FlutterAndroid
- Java與Excel的互動!-JavaExcel
- ReactNative與iOS的互動ReactiOS
- JockeyJS——優秀的WebView與JS互動開源庫使用和解析JSWebView
- OC(二)字串、方法字串
- Vue 減少和服務端互動的樣板程式碼一種方法Vue服務端
- JS遍歷物件的幾種方法JS物件
- js判斷物件的幾種方法JS物件
- 互動投影的幾種實現方式
- Sqlserver移動檔案路徑move datafile的三種方法SQLServer