2011-10-11 16 views
5

Tengo un proyecto IOS con recursos de archivos html que se muestran en una vista web. Estos archivos html tienen diferentes secciones que corresponden a fragmentos (por ejemplo, index.html # section1, index.html # section2), que me gustaría cargar en la vista web. Lamentablemente, usar [NSURL fileURLWithPath:url] no funciona con fragmentos. El # se convierte a %23 en la url y no se encuentra el archivo. Si utilizo el método [NSURL URLWithString:url], funciona, pero este método no puede cargar recursos locales.¿Cómo uso NSURL fileURLWithPath con un fragmento?

¿Hay alguna manera de que la vista web cargue la url de recursos locales con el fragmento?

+0

http://iphoneincubator.com/blog/data-management/how-to-read-a-file-from- your-application-bundle – Marios

+0

no, esto no fue de mucha ayuda. Parece ser imposible ... – Marius

Respuesta

3

Como usted ha notado, esto parece ser imposible para las direcciones URL de archivos, pero se puede usar una solución si no le importa:

[webView stringByEvaluatingJavaScriptFromString:@"window.location.hash = '#section2';"]; 
+0

Es posible, thomax describe la forma correcta de hacerlo. – Matjan

3

No es evidente cómo Apple pretende que este tipo de navegación que deben desencadenado Puede haber varias maneras de hacerlo, pero éste hace el truco para mí:

NSURL *url = [NSURL fileURLWithPath:@"/full/path/to/index.html"]; 
NSString *fragment = @"#section1"; 
url = [NSURL URLWithString:fragment relativeToURL:url]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
[webView loadRequest:request];