当前开发的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