为了方便h5和app对接,一般使用JSBridge这个库进行。
注,Swift 版的WKWebView 只支持 iOS9.0以上版本。
使用方式
第一步,pod第三方
pod ‘WKWebViewJavascriptBridge'
第二步,页面调用
import WKWebViewJavascriptBridge
class WebController: UIViewController,WKNavigationDelegate,WKUIDelegate {
var bridge:WKWebViewJavascriptBridge!
let webView = WKWebView(frame: CGRect(x: 0, y: 0, width: screenWidth, height: screenHeight - navigationHeight ), configuration: WKWebViewConfiguration())
override func viewDidLoad() {
webView.navigationDelegate = self
view.addSubview(webView)
// setup bridge
bridge = WKWebViewJavascriptBridge(webView: webView)
//设置监听方法
bridge.register(handlerName: "globalJsbridge") { (paramters, callback) in
if paramters?.count == 0 {
return
}
let method:String = paramters!["method"] as! String
let param:NSDictionary = paramters!["param"] as! NSDictionary
switch (method) {
//调用原生方法登录
case "openLogin”:
//调用完成,反传字典给js
let dic = ["code": 1, "msg":"", "data":[]] as [String : Any]
callback?(dic)
break;
default:
break;
}
}
}
网友评论