美文网首页iOS-swift
使用WebViewJavascriptBridge实现Swift

使用WebViewJavascriptBridge实现Swift

作者: 南南小生 | 来源:发表于2018-11-09 14:42 被阅读12次

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

相关文章

网友评论

    本文标题:使用WebViewJavascriptBridge实现Swift

    本文链接:https://www.haomeiwen.com/subject/khbnxqtx.html