Swiftui 通过WKWebView JS中的postMessage处理程序调用swift函数

Swiftui 通过WKWebView JS中的postMessage处理程序调用swift函数,swiftui,Swiftui,我正试图从WKWebView JS中的swift调用一个函数。我正在使用postMessage向swift发送消息。我正在成功地接收消息。从消息中可以看出,我需要调用指定的函数,并使用正确的参数。下面是我从JS发送消息的方式: window.webkit.messageHandlers.iOSNative.postMessage(message); 我在swiftui代码中收到它,如下所示: extension SwiftUiWebView.Coordinator: WKScriptMessa

我正试图从WKWebView JS中的swift调用一个函数。我正在使用
postMessage
向swift发送消息。我正在成功地接收消息。从消息中可以看出,我需要调用指定的函数,并使用正确的参数。下面是我从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)")
            }
        }
    }
}

我正在调试控制台中成功地获取带有正确消息的print语句。但是现在我需要根据消息调用一个特定的函数。如果我们将字符串更改为“myPrintMessageFunc('Hello World!')”,我们可以使用类似JS can的eval()调用该函数吗?或者是否有其他方法(不包括if-else语句)?

是否是您尝试模式匹配的
message.name
?你只是不想使用
if/else
?您是否尝试过
开关
语句?Swift中没有
eval
或类似功能。