1.加载本地的HTML页面使用DWKWebView 展示出来
let templatePath = Bundle.main.path(forResource: "test.html", ofType: nil)!
let template = (try? String(contentsOfFile: templatePath, encoding: String.Encoding.utf8))
let baseURL = URL(fileURLWithPath: templatePath)
let webView = DWKWebView.init(frame: view.bounds)
webView.addJavascriptObject(JsApi(), namespace: nil) //JsApi 是放与js交互方法的,js触发时,在JsApi中寻找对应的交互方法
webView.loadHTMLString(template ?? "", baseURL: baseURL)
self.view.addSubview(webView)
2.html代码通过事件触发js方法,在js 方法中写dsBridge的交互方法
dsBridge.call("testAsyn")进行调用。第一个参数对应端上的方法名,第二个参数是要传递的参数,第三个参数是接受js的回调
例如:
function callSyn() {
let res = dsBridge.call("testSyn", "hello")
}
3. JsApi
@objc func testSyn( _ arg:String) -> String {
return String(format:"%@[Swift sync call:%@]", arg, "test")
}