1. 程式人生 > >目前iOS與JS互動的方法選擇比對

目前iOS與JS互動的方法選擇比對

只是針對目前存在的互動方式做個比對。不會涉及任何實現。如需知道具體的使用。可自行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是基於攔截協議進行的封裝。同時支援UIWebviewWKWebview。但需在web前端嵌入相應的程式碼,同時web前端的程式碼需要遵守WebViewJavaScriptBridge的規定,無法做到與Android的統一。

WKWebview

WKWebviewiOS 8 之後提供的一款瀏覽器元件,在JSWKWebview進行互動時,JS呼叫window.webkit.messageHandlers

來發送訊息呼叫Native。無法做到web端統一程式碼。

以上互動方式,根據不同的需求來決定採用哪種方式,以下可做參考:

  • 如果web端人手不足、或是想做統一處理,可以採用JavaScriptCore攔截協議 的方式。如果是簡單的互動的直接上攔截協議 的方式就行。
  • 第三方框架WebViewJavaScriptBridgeWKWebview則需要web端的配合。