Open JianWenXie opened 4 years ago
跟swift5应该没关系,我用的好好的
我已经重构了这个库. 如果您遇到麻烦,可以尝试使用它. 下载地址: https://github.com/housenkui/WebViewJavascriptBridge 它更轻,使用更简单. 10分钟之内应该可以完成接入.
bridge 强引用试试,var gBridge: WKWebViewJavascriptBridge? ... gBridge = bridge
try this: import Foundation import WebKit import WebViewJavascriptBridge
protocol WebviewWithBridgePr{ var webviewWithBridgeTuple:(webview:WKWebView,bridge:WKWebViewJavascriptBridge)?{set get}
func initWebviewAndBridge(urlStr:String) -> (WKWebView,WKWebViewJavascriptBridge)?
}
extension WebviewWithBridgePr{ func initWebviewAndBridge(urlStr:String) -> (WKWebView,WKWebViewJavascriptBridge)? {
// let config = WKWebViewConfiguration.init() // let webv = WKWebView.init(frame: <#T##CGRect#>, configuration: T##WKWebViewConfiguration) let webv = WKWebView.init()
let url = URL.init(string: urlStr)
guard let url = url else{
return nil
}
let rqst = URLRequest.init(url: url, cachePolicy: Foundation.URLRequest.CachePolicy.useProtocolCachePolicy, timeoutInterval: 60)
webv.load(rqst)
let bridge = WKWebViewJavascriptBridge.init(for: webv)
guard let bridge = bridge else{
return nil
}
WKWebViewJavascriptBridge.enableLogging()
return (webv, bridge)
}
}
用UIWebView可以实现跟h5交互 但是用WKWebView就没没响应 以下是iOS的方法调用 import UIKit import WebKit import WKWebViewJavascriptBridge /// 工单报修 class VKBaseWebViewCtrl: VKBaseViewCtrl {
} extension VKBaseWebViewCtrl: WKUIDelegate,WKNavigationDelegate,UIWebViewDelegate{ // func webView( webView: WKWebView, didFinish navigation: WKNavigation!) { // hideHud() // } // // func webView( webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) { // hideHud() // Log(message: "加载失败") // } func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) { print("webViewDidStartLoad") }
}