JS在Swift中调用函数

Mic*_*l A 5 ios swift wkwebview wkwebviewconfiguration

我知道如何从JS发送消息到本机IOS swift应用程序:

func userContentController(userContentController: WKUserContentController!, didReceiveScriptMessage message: WKScriptMessage!) {

        println("JavaScript is sending a message \(message.body)")

}
Run Code Online (Sandbox Code Playgroud)

和JS:

webkit.messageHandlers.callbackHandler.postMessage("Hello from JavaScript");
Run Code Online (Sandbox Code Playgroud)

我的问题:是否可以直接调用本机应用程序中的函数,而不是在我的示例代码中接收消息.

说我想在JS中使用类似的东西:

webkit.messageHandlers.someFunctionName()
Run Code Online (Sandbox Code Playgroud)

我问的原因是在Android中它是如何工作的

小智 -1

您可以尝试使用 URL 查询变量,就像使用 Swift 连接到 PHP 一样。

以下是如何在 Javascript 中获取查询变量的示例:获取 url 参数 jquery 或如何在 js 中获取查询字符串值

然后,当您运行 Javascript 时,您可以检查 URL 查询变量是什么,然后基于该变量运行一个函数。

例如,我们使用command下面的变量来表示要运行哪个函数:

example.com?command=foo
Run Code Online (Sandbox Code Playgroud)

然后在 Javascript 中做这样的事情:

if(command == 'foo') {
   runFoo();
}
Run Code Online (Sandbox Code Playgroud)

然后,您还可以使用 URL 查询变量来指定函数的参数。

如果你选择PHP

如果您选择使用 PHP,则可以使用$_GET['command'];.