swift调用dsBridge进行js交互

2,396 阅读1分钟

dsBridge的git地址 github.com/wendux/DSBr…

安装: pod 'dsBridge'

由于dsBridge基于OC的框架,在swift桥加上头文件#import "dsbridge.h"

webView创建:

webView = DWKWebView().then {

        self.view.addSubview($0)
        $0.scrollView.bounces = false
        $0.backgroundColor = .clear
        //添加js实例
        $0.addJavascriptObject(WebJsApi(), namespace: nil)
        $0.setDebugMode(true)
        $0.customJavascriptDialogLabelTitles(["alertTitle":"Notification", "alertBtn":"OK"])
        $0.navigationDelegate = self
        $0.scrollView.delegate = self
    }

js实例: import Foundation class WebJsApi: NSObject {

//Js调用swift
@objc func jsAsynCallSwift(_ args:Dictionary<String, Any>, handler: @escaping (String, Bool) -> ()) {
    handler("Js调用swift", true)
}

@objc func jsSynCallSwift(_ args:Dictionary<String, Any>) -> String {
    return "js Syn call swift"
}

}

js调用:

function jsSynCallSwift() { alert(dsBridge.call("swift.testSyn", "hello")) }

function jsAsynCallSwift() { dsBridge.call("LocJavascriptInterface", function (v) { alert(v) })