Swift stringByEvaluatingJavaScriptFromString

Intento usar algo de javascript en mi WebView con el nuevo

Función stringByEvaluatingJavaScriptFromString

No estoy familiarizado con la syntax, así que lo intenté

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

como se muestra aquí https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWebView_Class/index.html#//apple_ref/occ/instm/UIWebView/stringByEvaluatingJavaScriptFromString : pero aparece el error "Esperado" . ' separador"

El método que está intentando llamar está prototipado de la siguiente manera:

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

Esto significa :

  • Toma una String como parámetro único
  • Devuelve una String opcional ( String? )

Necesita tener una instancia de UIWebView para usarlo:

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

Debido a que el tipo de devolución es opcional , necesita ser desenvuelto antes de poder usarlo. Pero tenga cuidado, puede no tener un valor (es decir, puede ser igual a nil ) y desempaquetar valores nil conduce a lockings en time de ejecución.

Por lo tanto, debe verificarlo antes de poder usar la cadena devuelta:

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

Esto significa: Si el result no es nil , desenvuélvalo y asígnelo a una nueva constante llamada returnedString .

Además, puede envolverlo con:

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

Espero que esto tenga sentido para ti.

Este método se usa para llamar a la secuencia de commands javascript directamente desde uiwebview

 let htmlTitle = myWebView.stringByEvaluatingJavaScriptFromString("document.title"); println(htmlTitle) 

http://sourcefreeze.com/uiwebview-example-using-swift-in-ios/