當前開發的APP中,Html5的應用場景非常多,常需要兩者之間的數據交換,或頁面跳轉。
參考了相關文檔,並整理如下,希望能給他人一些幫助。
Html5文件如下
Native APP 調用 JavaScript
一個JavaScript方法對應一個WKUserScript對象。
let conf = WKWebViewConfiguration() let userScript = WKUserScript(source: "redHeader()", injectionTime: .AtDocumentEnd, forMainFrameOnly: true) conf.userContentController.addUserScript(userScript) webView = WKWebView(frame: self.view.frame, configuration: conf)
JavaScript調用Native APP
1.首先添加一個WKScriptMessageHandler代理
class ViewController: UIViewController, WKScriptMessageHandler
2.實現?userContentController?的代理方法
func userContentController(userContentController: WKUserContentController!, didReceiveScriptMessage message: WKScriptMessage!) { if(message.name == "callbackHandler") { println("JavaScript is sending a message \(message.body)") } }
3.WebView啟動對JavaScript的監聽事件
contentController.addScriptMessageHandler( self, name: "callbackHandler" )
4.H5中,添加如下JavaScript
webkit.messageHandlers.callbackHandler.postMessage("I Love you");
源代碼下載地址
http://git.oschina.net/hengchengfei/SwiftJS
效果圖