gpt4 book ai didi

ios - 快速将数据传递给 Javascript

转载 作者:行者123 更新时间:2023-11-28 08:47:26 25 4
gpt4 key购买 nike

我正在尝试将数据从 iOS 应用程序中的 swift 文件传递​​到我拥有的 javascript 文件。我查找了 evaluateJavaScript 方法,但它不起作用。不确定我做错了什么。这就是我正在尝试的。任何帮助将不胜感激。

var webView: WKWebView
let config = WKWebViewConfiguration()
let loginScriptURL = NSBundle.mainBundle().pathForResource("addComment", ofType: "js")
let addCommentMessageHandler = "addComment"

required init?(coder aDecoder: NSCoder) {
self.webView = WKWebView(frame: CGRectZero, configuration: config)
super.init(coder: aDecoder)
self.webView.navigationDelegate = self
config.userContentController.addScriptMessageHandler(self, name: addCommentMessageHandler)
let scriptContent = try? String(contentsOfFile:loginScriptURL!, encoding:NSUTF8StringEncoding)
let script = WKUserScript(source: scriptContent!, injectionTime: .AtDocumentEnd, forMainFrameOnly: true)
config.userContentController.addUserScript(script)
webView.evaluateJavaScript("storeAndShow( \(DataService.shared.theComment) )",
completionHandler: nil)
}


override func viewDidLoad() {
super.viewDidLoad()

setUpView()
}

func setUpView() {
view.addSubview(webView)
webView.translatesAutoresizingMaskIntoConstraints = false
let height = NSLayoutConstraint(item: webView, attribute: .Height, relatedBy: .Equal, toItem: view, attribute: .Height, multiplier: 1, constant: -44)
let width = NSLayoutConstraint(item: webView, attribute: .Width, relatedBy: .Equal, toItem: view, attribute: .Width, multiplier: 1, constant: 0)
view.addConstraints([height, width])

webView.loadRequest(NSURLRequest(URL:NSURL(string:"https://blah.com)!))
}

如您所见,我正在尝试使用一些数据调用 storeAndShow。 storeAndShow 方法在我的 javascript 文件中。

最佳答案

documentation说:

Discussion

The method sends the result of the script evaluation (or an error) to the completion handler.

但是您正在将 nil 传递给完成处理程序。您应该检查它是否正在重新调整错误,也许那里有关于该问题的更多信息。

关于ios - 快速将数据传递给 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34951573/

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