gpt4 book ai didi

javascript - 如何将数据从 swift 传递到 javascript?

转载 作者:可可西里 更新时间:2023-11-01 00:59:30 25 4
gpt4 key购买 nike

我知道如何将数据从 javascript 传递到 swift,但不知道如何将数据从 swift 传递到 javascript。

我用来将数据从 javascript 传递到 swift 的方法如下:

<head>

<title>Test</title>
<meta charset="UTF-8">
</head>
<body>
<h1>WebView Test 3</h1>
<script>
function callNativeApp () {
try {
webkit.messageHandlers.callbackHandler.postMessage("Here");
} catch(err) {
console.log('The native context does not exist yet');
}
}
callNativeApp();
</script>
</body>

import UIKit

import WebKit

class ThirdViewController: UIViewController,WKScriptMessageHandler{


override func viewDidLoad() {

super.viewDidLoad()

let configuration=WKWebViewConfiguration()

let controller=WKUserContentController()


controller.addScriptMessageHandler(self, name: "callbackHandler")


configuration.userContentController=controller

let webView=WKWebView(frame: self.view.frame, configuration: configuration)

let url=NSBundle.mainBundle().URLForResource("test3", withExtension: "html")

let request=NSURLRequest(URL: url!)

self.view=webView

webView.loadRequest(request)
}

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

if(message.name == "callbackHandler"){
print("callbackHandler: \(message.body)")
}



}


}

最佳答案

如您所知,您可以通过调用 postMessage 将信息传递给 Swift。

要从 Swift 向浏览器传递信息,您只需像这样调用 evaluateJavascript:

let num1 = 4
let num2 = 8

webView.evaluateJavaScript("addTwoNumbers(\(num1), \(num2);") { (result, error) in
guard error == nil else {
print("there was an error")
return
}

print(Int(result))
}

要让这个特定代码执行任何操作,您需要在 Javascript 中使用 addTwoNumbers 函数来处理该函数并执行某些操作。

关于javascript - 如何将数据从 swift 传递到 javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37343125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com