目前iOS與JS互動的方法選擇比對
阿新 • • 發佈:2018-11-11
只是針對目前存在的互動方式做個比對。不會涉及任何實現。如需知道具體的使用。可自行baidu或者Google。
攔截協議
攔截協議是最簡單的互動方式,在Android端和iOS端直接攔截,可以統一web前端的程式碼。web前端通過在連結中帶上引數。比如:
88gongxiang://loginFunc&name=xxx&pwd=123456。通過攔截url的scheme等於88gongxiang。由Native攔截後自行處理。
JavaScriptCore
iOS7之後蘋果推出了JavaScriptCore這個框架,從而讓web頁面和本地原生應用互動起來非常方便,而且使用此框架可以做到Android那邊和iOS相對統一,web前端寫一套程式碼就可以適配客戶端的兩個平臺,從而減少了web前端的工作量。
第三方框架WebViewJavaScriptBridge
WebViewJavaScriptBridge時目前iOS流行的JS互動框架,WebViewJavaScriptBridge是基於攔截協議進行的封裝。同時支援UIWebview和WKWebview。但需在web前端嵌入相應的程式碼,同時web前端的程式碼需要遵守WebViewJavaScriptBridge的規定,無法做到與Android的統一。
WKWebview
WKWebview是 iOS 8 之後提供的一款瀏覽器元件,在JS與WKWebview進行互動時,JS呼叫window.webkit.messageHandlers
Native。無法做到web端統一程式碼。
以上互動方式,根據不同的需求來決定採用哪種方式,以下可做參考:
- 如果
web端人手不足、或是想做統一處理,可以採用JavaScriptCore、攔截協議的方式。如果是簡單的互動的直接上攔截協議的方式就行。 第三方框架WebViewJavaScriptBridge、WKWebview則需要web端的配合。
