2014-09-26 77 views
6

我尝试在我的WebView使用一些JavaScript新斯威夫特stringByEvaluatingJavaScriptFromString

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:但我收到一个错误,“预期”。分隔符”

回答

9

您试图调用该方法的原型如下所示:

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

这意味着:

  • 它需要一个String单参数
  • 它返回一个可选StringString?

你需要有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)") 
} 

希望这对你有意义:

此外,还可以一起包裹。