jjzjj

javascript - Swift stringByEvaluatingJavaScriptFromString

coder 2023-07-17 原文

我尝试在我的 WebView 上使用一些 javascript 和新的

stringByEvaluatingJavaScriptFromString 函数

我不太熟悉语法,所以我尝试了

 func stringByEvaluatingJavaScriptFromString( "document.documentElement.style.webkitUserSelect='none'": String) -> String? 

如图所示https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWebView_Class/index.html#//apple_ref/occ/instm/UIWebView/stringByEvaluatingJavaScriptFromString :但我得到一个错误“预期'。'分隔符”

最佳答案

您尝试调用的方法原型(prototype)如下:

func stringByEvaluatingJavaScriptFromString(_ script: String) -> String?

这意味着:

  • 它接受一个String作为单个参数
  • 它返回一个可选的String (String?)

您需要有一个 UIWebView 实例才能使用它:

let result = webView.stringByEvaluatingJavaScriptFromString("document.documentElement.style.webkitUserSelect='none'")

因为返回类型是optional , 需要解包才能使用。 但要小心,它可能没有值(即它可能等于 nil)并且解包 nil 值会导致运行时崩溃。

因此在使用返回的字符串之前需要进行检查:

if let returnedString = result {
    println("the result is \(returnedString)")
}

这意味着:如果result 不是nil,那么将其解包并将其分配给一个名为returnedString 的新常量。

此外,您可以将其包装在一起:

let script = "document.documentElement.style.webkitUserSelect='none'"
if let returnedString = webView.stringByEvaluatingJavaScriptFromString(script) {
    println("the result is \(returnedString)")
}

希望这对您有意义。

关于javascript - Swift stringByEvaluatingJavaScriptFromString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26056132/

有关javascript - Swift stringByEvaluatingJavaScriptFromString的更多相关文章

随机推荐