swift 原生给h5发消息_Swift和Html5的相互调用

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

print

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在H5页面中向Swift消息,可以使用JavaScript与Swift进行通信。有几种方法可以实现这个目的: 1. 使用JavaScriptCore框架 JavaScriptCore框架是一种将JavaScript引擎集成到iOS应用程序中的方式。可以使用它来执行JavaScript代码,并允许JavaScript代码与原生代码进行交互。 首先,在Swift中创建一个JSContext对象: ``` let context = JSContext() ``` 然后,将JavaScript代码作为字符串传递给该对象的evaluateScript方法: ``` context.evaluateScript("alert('Hello from JavaScript!')") ``` 可以在JavaScript代码中调用Swift函数,也可以在Swift调用JavaScript函数。例如,在Swift调用JavaScript的alert函数: ``` let alertFunction = context.objectForKeyedSubscript("alert") alertFunction.call(withArguments: ["Hello from Swift!"]) ``` 2. 使用WebViewJavascriptBridge库 WebViewJavascriptBridge是一种为Web和原生代码之间的通信提供简单API的库。它提供了一种双向通信的方法,使得可以在H5页面和原生代码之间互相消息。 首先,在Swift中创建一个WebViewJavascriptBridge对象: ``` let bridge = WebViewJavascriptBridge(webView: webView) ``` 然后,在H5页面中使用以下JavaScript代码将消息送给Swift: ``` bridge.send("Hello from H5!") ``` 在Swift中,可以使用以下代码接收H5页面送的消息: ``` bridge.registerHandler("myHandler") { (data, responseCallback) in print("Received message from H5: \(data)") } ``` 这将注册一个名为“myHandler”的处理程序,当H5页面使用以下JavaScript代码消息时,该处理程序将被调用: ``` bridge.callHandler("myHandler", data: "Hello from H5!", responseCallback: nil) ``` 这将在Swift中输出以下消息: ``` Received message from H5: Hello from H5! ``` 以上是两种将H5页面与Swift进行通信的方法。您可以根据您的具体需求选择合适的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值