gpt4 book ai didi

javascript - iOS:当参数包含换行符时,evaluateJavaScript 将不会调用函数

转载 作者:行者123 更新时间:2023-11-28 12:38:08 24 4
gpt4 key购买 nike

目标是在包含在 WKWebView 中的网页中调用回调函数。

evaluateJavaScript 在其参数包含换行符时中断,这意味着永远不会调用回调函数。

这是为什么?

userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) 当用户按下网页上的按钮时调用。

func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
let dict = message.body as! [String:AnyObject]
let callback = dict["callback"] as! String

// Fails
let serializedClipboard = "hello\n"

// Works
// let serializedClipboard = "hello"

webView!.evaluateJavaScript("\(callback)('\(serializedClipboard)')") { (object: Any?, error: Error?) -> Void in
print("Done invoking \(callback)")
}
}

最佳答案

一个似乎有效的选项是在参数中转义换行符:

let escapedClipboard = serializedClipboard.stringByReplacingOccurrencesOfString("\n", withString: "\\n")

如果您看到更清洁的解决方案,请发表建议。

关于javascript - iOS:当参数包含换行符时,evaluateJavaScript 将不会调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40292348/

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