2014-09-26 9 views
6

staram się korzystać z niektórych JavaScript na moim WebView z nowymSwift stringByEvaluatingJavaScriptFromString

stringByEvaluatingJavaScriptFromString funkcji

ja nie m W spokojnym zaznajomiony ze składnią więc próbowałem

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

jak pokazano tutaj https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWebView_Class/index.html#//apple_ref/occ/instm/UIWebView/stringByEvaluatingJavaScriptFromString: ale pojawia się błąd "Oczekiwany". separator”

Odpowiedz

9

Sposób próbujesz zadzwonić jest prototyp jak:

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

To znaczy:

  • Zajmuje String jako pojedynczego parametru
  • Zwraca opcjonalnie String (String?)

Trzeba mieć wystąpienie UIWebView go używać:

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

Ponieważ typ zwracany jest optional, to należy odwinąć, zanim będzie można go używać. Należy jednak zachować ostrożność, może ona nie mieć wartości (tj. Może być równa nil), a rozpakowanie wartości zerowych prowadzi do awarii w środowisku wykonawczym.

Więc trzeba sprawdzić, że zanim będzie można użyć zwrócony ciąg:

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

To znaczy: Jeśli result nie jest nil następnie rozpakować go i przypisać go do nowej stałej nazwie returnedString.

Dodatkowo można owinąć go razem z:

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

nadzieję, że to ma sens dla Ciebie.