2011-10-05 12 views
12

estoy usando iOS 4.3 & se preguntaba si hay alguna manera de que pueda acceder al Safari's "Reader" feature a través del cual se eliminan las páginas web de los anuncios & otra raff del riff & el contenido toma el centro del escenario.iOS acceso a la función Lector de Safari a través UIWebView

Si se abre un artículo en Safari (en el sitio web Wikipedia), aparece un botón "Reader" en la barra de la URL. Al hacer clic en él se presenta una nueva ventana que presenta el contenido bellamente.

¿Cómo puedo aprovechar esta funcionalidad en iOS a través del UIWebView?

enter image description here

PD: Sé que hay algo que se llama Readability Project. Pero no tengo idea de cómo usar esto a través del UIWebView. También para algunos sitios web Safari's Reader toma una llamada para no habilitar la función "Reader", ¿tal vez no tiene suficiente confianza?

+0

¿por qué el -ve vota? ¿Qué pasa con la gente? –

Respuesta

1

En realidad, el botón del lector hace un poco de análisis donde analiza la página HTML y luego ve una etiqueta corporal clara para analizar. Si ese complemento es capaz de extraer el cuerpo exacto, habilitará el botón del lector (Mi comprensión del código fuente de legibilidad). Ahora, para implementar lo mismo para la vista web, solo necesita incrustar el script java en su código (este script java ya está disponible en el código fuente de lectura) y luego puede lograr el mismo efecto.

Pero sospecho que el plan futuro de apple es el mismo. Porque no pueden dejar que otra persona haga esta extracción de contenido con la gran oportunidad de negocio asociada con iCloud con la combinación de legibilidad.

Si lo desea, puede extraer el HTML de UIWebView y extraer el cuerpo y usarlo para su propósito. No es una ciencia muy cohete para extraer.

Para el punto de vista del análisis, solo tiene aleatoriamente unas 10 páginas HTML con el botón Reader habilitado, verá que el núcleo del cuerpo pertenece solo al cuerpo y el resto del agregado, el encabezado y el pie de página están separados.

Creo que este es el momento de reinventar el contenido web que utilizamos, y este es el ejemplo perfecto de hacer lo mismo.

4

Apple está haciendo una gran cosa acerca de la inclusión de "lector" en IOS 5. Asumo por el ruido que no está disponible en 4,3

re: Modo de empleo a través UIWebView

3

No analizo HTML nativamente en iOS, lo he hecho antes y es un asunto complicado. Cree su propio servicio web para hacer todo el trabajo desagradable o analice el uso de la legibilidad (legibilidad.com) que proporcionan una API. También hay un código abierto Ruby, Python y el puerto legibilidad php que se puede encontrar aquí

https://github.com/iterationlabs/ruby-readability

https://github.com/gfxmonk/python-readability

http://code.fivefilters.org/p/php-readability/source/tree/master/

Para que Ruby entusiastas, la legibilidad también está disponible como una joya , solo busca en google.

0

Incluso puede hacerlo mediante la inyección de javascript.

#define readJS @"(function(){window.baseUrl='https://www.readability.com';window.readabilityToken='';var s=document.createElement('script');s.setAttribute('type','text/javascript');s.setAttribute('charset','UTF-8');s.setAttribute('src',baseUrl+'/bookmarklet/read.js');document.documentElement.appendChild(s);})()" 

Y luego, cuando su página web termina de cargar

- (void)webViewDidFinishLoad:(UIWebView *)webview 
{ 
    [webview stringByEvaluatingJavaScriptFromString:readJS]; 
10

Importante: esta respuesta ya no funciona!

Legibilidad de cierre en 30 de septiembre de 2016.

Aquí es algo que recomiendan como un reemplazo: https://mercury.postlight.com/web-parser/

Mantener la respuesta como una referencia histórica

--- --- Respuesta original

Usted puede utilizar legibilidad movilizador para esto. Obtendrá una versión limpia de cualquier artículo, en el estilo de legibilidad:

http://www.readability.com/m?url=http://{URLOFTHEARTICLE} 

Sólo tiene que preparar la URL y cargarlo en su UIWebView. Aquí es cómo se ve en acción:

http://www.readability.com/m?url=http%3A%2F%2Fwww.cnn.com%2F2013%2F01%2F11%2Fshowbiz%2Ftv%2Fgolden-globes-tv-vineyard%2Findex.html%3Fhpt%3Dhp_abar

+0

¿Cómo puede hacer que la "versión limpia" se vea bien en un UIWebView? Lo tengo trabajando en mi aplicación, pero quiero que las fuentes y el estilo se vean bien. – Supertecnoboff

0

Usted puede hacerlo en iOS9. primeros SafariServices importación:

#import <SafariServices/SafariServices.h> 

Después que se instanciar SFSafariViewController y agregarlo como una vista secundaria. Tenemos dos opciones hacerlo:

  • Creación con URL única base
  • Creación con el URL bas, así como entrar en caso de que esté disponible 'modo de lectura'
NSString *sURL = @"http://google.com"; 

NSURL *URL = [NSURL URLWithString:sURL]; 

SFSafariViewController *safari = [[SFSafariViewController alloc] initWithURL:URL]; // 1. 

SFSafariViewController *safari = [[SFSafariViewController alloc] initWithURL:URL entersReaderIfAvailable:YES]; // 2. 

[self presentViewController:safari animated:YES completion:nil]; 
+0

'SFSafariViewController' está disponible desde iOS 9, en un sistema anterior esto provocaría la falla. – michi

Cuestiones relacionadas