Swift stringByEvaluatingJavaScriptFromString

Trato de usar un poco de javascript en mi WebView con el nuevo

stringByEvaluatingJavaScriptFromString function

No estoy tranquilo familiarizado con la syntax, así que 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 obtengo un error que "esperaba" . ' separador"

El método al que está intentando llamar se crea como un prototipo del siguiente:

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

Esto significa :

  • Toma una String como un solo parámetro
  • 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 , debe ser desenvuelto antes de poder utilizarlo. Pero tenga cuidado, puede no tener un valor (es decir, puede ser igual a nil ) y desenvolver valores nulos conduce a fallas de 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 , desenvolverlo y asignarlo a una nueva constante llamada returnedString .

Además, puede envolverlo junto 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 al script javascript directamente desde uiwebview

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

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