Obtener el text seleccionado de un UIWebView

Estoy intentando acceder al text actualmente seleccionado en una UIWebView utilizando la siguiente línea de código:

 NSString *highlighted = [_webView stringByEvaluatingJavaScriptFromString:@"window.getSelection();"]; 

Pero solo devuelve una cadena emtpy. ¿Alguna idea sobre lo que me falta?

Intente con esto:

 NSString * highlighted = [_webView stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"]; 

Creo que esto ayudará

 NSString *selection = [self.webView stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"]; 

Verifica también este enlace

También he tropezado con este problema, y ​​esto es realmente frustrante. No recuerdo exactamente de dónde obtuve la solución, pero es la siguiente; getSelection() devuelve un object JavaScript que no se puede convertir en una cadena. Debes convertirlo explícitamente en una cadena del código JavaScrtipt:

 NSString *highlighted = [_webView stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString();"]; 

Véalo en acción.

En swift: self.webView.stringByEvaluatingJavaScriptFromString ("window.getSelection (). ToString ();")

Se requiere el punto y coma al final del Javascript, ¡sin esto no funcionó!

Prueba esto con rapidez:

 // stringByEvaluatingJavaScript retunr optional string, hence use if-let block if let selectedString = self.webView.stringByEvaluatingJavaScript(from: "window.getSelection().toString()") { print(selectedString - \(selectedString)) }