转载

Swift和Html5的相互调用

当前开发的APP中,Html5的应用场景非常多,常需要两者之间的数据交换,或页面跳转。

参考了相关文档,并整理如下,希望能给他人一些帮助。

Html5文件如下

Swift和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

效果图

Swift和Html5的相互调用

原文  http://www.cocoachina.com/ios/20160208/15209.html
正文到此结束
Loading...