Swift与JavaScript交互

Swift版本WebViewJavascriptBridge—SwiftWebViewBridge

For Swift

Generate a bridge with associated webView and default handler to deal with messages from js

 public class func bridge(webView: UIWebView, defaultHandler handler: SWVBHandler?) -> SwiftWebViewBridge

Generate a bridge with associated webView and default handler to deal with messages from js without specifying designated handler

        self.bridge = SwiftWebViewBridge.bridge(webView, defaultHandler: { data, responseCallback in
            
            print("Swift received message from JS: \(data)")
            
            // Actually, this responseCallback could be an empty closure when javascript has no callback, saving you from unwarping an optional parameter = )
            responseCallback("Swift already got your msg, thanks")
        })

Register a handler for JavaScript calling

      self.bridge.registerHandlerForJS(handlerName: "printReceivedParmas", handler: { [unowned self] jsonData, responseCallback in
            
            // if you used self in any bridge handler/callback closure, remember to declare weak or unowned self, preventing from retaining cycle!
            // Because VC owned bridge, brige owned this closure, and this cloure captured self!
            self.printReceivedParmas(jsonData)
            
            responseCallback(["msg": "Swift has already finished its handler", "returnValue": [1, 2, 3]])
            })

调用js方法

    private func printReceivedParmas(data: AnyObject) {
        
        print("Swift recieved data passed from JS: \(data)")
    }

Sent data to JS simply

self.bridge.sendDataToJS(["msg": "Hello JavaScript, My name is 小明", "gift": ["100CNY", "1000CNY", "10000CNY"]])

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • WKWebView对于HTML5的操作已经很方便了,但是还没有Android的WebView那样简单。WebVie...
    sxtra阅读 10,168评论 0 7
  • 转载自:https://github.com/Tim9Liu9/TimLiu-iOS[https://github...
    香橙柚子阅读 12,840评论 0 36
  • 这样的天气,适合睡觉,也适合跑步。 今天早上刚结束Campus Run,不长不短的十公里,当做是元月半马前的热身赛...
    裴紊阅读 1,319评论 2 0
  • 肩周炎反手困难的必须配合下面这个动作,每天练习十多分钟,将肱二头肌拉开。 第二图是针对肩周炎搭肩困难的患者,同时对...
    友品中医阅读 3,073评论 1 0
  • 今期看到几本外国教育的书。 发现共同的一点:站的高,望的远。 首先教育者,你得把受教育者教育成什么人。 其次受教育...
    武瑞丁家长阅读 1,917评论 0 1