使用WebViewJavascriptBridge實現Swift和vue.js交互

WebViewJavascriptBridge

鏈接:https://github.com/marcuswestin/WebViewJavascriptBridge

iOS端的實現

1.通過pod安裝

pod 'WebViewJavascriptBridge'

2.注冊和調用(雖然庫是OC寫的,但是Swift可以直接用)

//注冊方法,js可以調用注冊過后的方法
self.bridge = WebViewJavascriptBridge.init(forWebView: self.webView)
self.bridge.registerHandler("getScreenHeight") { data, responseCallback in
    responseCallback!(UIScreen.main.bounds.size.height)
    let str : String = data as! String
    print("獲得js傳遞的字符串:"+str)
}
//通過bridge調用js方法
self.bridge.callHandler("showAlert", data: "這是Swift傳向js的字符串!")
self.bridge.callHandler("getCurrentPageUrl", data: nil) { responseData in
    let str : String = responseData as! String
    print("獲得js返回的地址:"+str)
}

vue.js的實現

1.參考文章
vue項目使用WebViewJavascriptBridge
2.注冊和調用

this.$bridge.registerhandler('showAlert', (data, responseCallback) => {
  this.$vux.toast.show({
    text: data,
    type: 'text'
  });
})
this.$bridge.registerhandler('getCurrentPageUrl', (data, responseCallback) => {
  responseCallback("https://www.baidu.com")
})
//調用原生注冊過的方法
this.$bridge.callhandler('getScreenHeight', "調用getScreenHeight方法", (data) => {
  // 處理返回數據
  this.height = data
})

效果圖

1111.png

2222.png

Demo地址

1.iOS項目地址:https://github.com/DalyLong/WebViewBridgeDemo
2.vue項目地址:https://github.com/DalyLong/VueAndBridgeDemo

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網絡請求組件 FMDB本地數據庫組件 SD...
    陽明AGI閱讀 16,009評論 3 119
  • 我以為自己長大的時候,竟然是老了。熱辣的太陽是老了,茂盛的草原是老了,只有通紅的朝陽,帶著露水的綠芽,才是新鮮的,...
    ImasingerWhoru閱讀 291評論 0 2
  • 人不可能阻止指甲生長....同樣的,人也不能壓抑自己與生俱來的沖動! “我的名字叫吉良吉影,33歲。住在杜王町東北...
    水癮x閱讀 2,050評論 0 1
  • 厭倦了與雨兼程 風在夜里悄然離開 方向即黎明曙光所在 方向即遼闊的大海 穿過破裂的墻壁 徘徊于一處人跡 轉瞬馳往青...
    Boty閱讀 131評論 0 0
  • 打開衣櫥數一數你有幾條連衣裙?20?30?……或者有60、70條甚至100多條! 你經常穿的又有幾條呢? 每個女人...
    maggie在旅居閱讀 1,475評論 0 3