swiftui - 通过 WKWebView JS 中的 postMessage 处理程序调用 swift 函数
问题描述
我正在尝试在 WKWebView JS 中从 swift 调用一个函数。我正在使用 swift 向 swift 发送消息postMessage
。我正在成功接收消息。不知何故,我需要使用正确的参数调用指定的函数。这是我从 JS 发送消息的方式:
window.webkit.messageHandlers.iOSNative.postMessage(message);
我在我的 swiftui 代码中收到它,如下所示:
extension SwiftUiWebView.Coordinator: WKScriptMessageHandler {
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
if message.name == "iOSNative" {
if let body = message.body as? [String: Any?] {
print("JSON value received from webView is: \(body)")
} else if let body = message.body as? String {
print("String value received from webView is: \(body)")
}
}
}
}
我在调试控制台中成功获得了带有正确消息的打印语句。但是现在我需要根据消息调用特定的函数。如果我们将字符串更改为“myPrintMessageFunc('Hello World!')”,我们可以使用某种类似于 JS 的 eval() 来调用该函数吗?还是有其他方法可以做到这一点(不包括 if else 语句)?
解决方案
推荐阅读
- sql - 如何复制 SQL 表中的列?
- python - 在 pymongo 中解析 json 字符串
- wordpress - 如何在 Kubernetes 集群中扩展 Wordpress - 使用多个 pod 副本 - 访问单个 PVC(持久文件存储)
- javascript - Safari点击事件未在iphone上触发
- java - 我正在尝试安装我克隆的 apache-storm 存储库。并收到以下错误。如何解决这个问题?
- javascript - 画布外菜单滑入时如何使主要内容变暗
- vb.net - 如何删除另一个进程使用的文件
- java - 如何从方面读取接口变量
- javascript - Django页面有两种形式:如何只发布一种形式而不刷新页面
- instagram - 动态附加到页面时,instagram embed 一开始不起作用,但在刷新后才起作用