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 :
String
como parámetro único 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/