tin*_*ans 5 javascript ios swift wkwebview wkwebviewconfiguration
我正在使用WebViews开发混合的Android和iOS应用程序。但是,我正在努力将数据从iOS应用返回到我的Javascript。
下面是我如何设置WebView以便从我的JavaScript函数接收数据。
private lazy var webViewConfiguration: WKWebViewConfiguration = {
let configuration = WKWebViewConfiguration()
configuration.userContentController.add(self, name: "loginController")
return configuration
}()
extension ApplicationController: WKScriptMessageHandler {
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
if (message.name == "loginController"){
print("\(message.body)")
}
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我将数据传递到应用程序的方式。
webkit.messageHandlers.loginController.postMessage("Hello from JavaScript");
Run Code Online (Sandbox Code Playgroud)
本质上,我想做的是能够将数据从应用程序接收回我的JavaScript并执行类似的操作...
var response = webkit.messageHandlers.loginController.postMessage("Hello from JavaScript");
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何从应用程序中返回一些东西。我是Swift的新手。但是,对于Android开发人员而言,就像将返回类型添加到我的函数中一样简单,但这不适用于Swift。
小智 -1
使用WebView的evaluateJavaScript函数将JS代码注入到您的窗口中。
webView?.evaluateJavaScript("responseFromLoginController('Hello from Swift')")
Run Code Online (Sandbox Code Playgroud)