2011-10-11 13 views
5

Ho un progetto IOS con risorse di file html mostrato in una webview. Questi file html hanno sezioni differenti che corrispondono a frammenti (ad es. Index.html # section1, index.html # section2), che vorrei caricare nella webview. Sfortunatamente l'uso di [NSURL fileURLWithPath:url] non funziona con i frammenti. Il # viene convertito in %23 nell'URL e il file non viene trovato. Se utilizzo il metodo [NSURL URLWithString:url], funziona, ma questo metodo non può caricare risorse locali.Come utilizzare NSURL fileURLWithPath con un frammento?

C'è un modo per fare in modo che la webview carichi l'URL della risorsa locale con il frammento?

+0

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

+0

no, questo non è stato di grande aiuto. Sembra impossibile ... – Marius

risposta

3

Come avete notato, questo sembra essere impossibile per gli URL dei file, ma è possibile utilizzare una soluzione se non ti dispiace:

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

È possibile, thomax ha descritto il modo corretto per farlo. – Matjan

3

Non è evidente come Apple destinato questo tipo di navigazione per essere innescato. Ci possono essere diversi modi per farlo, ma questo fa il trucco per me:

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]; 
Problemi correlati