UIWebView baseURL und absoluten Pfad

Ich habe eine HTML-Seite, die aufgebaut ist wie dieses:

<html>
  <head>
    <link rel="stylesheet" href="/style.css" />
  </head>
  <body>

  </body>
</html>

Es ist gespeichert in Ordner "my documents":

/Users/username/Library/Application Support/iPhone Simulator/5.1/Applications/12345-ID/Documents/mysite/index.html

Habe ich auch gespeichert, der Stil.css in das Verzeichnis Dokumente:

/Users/username/Library/Application Support/iPhone Simulator/5.1/Applications/12345-ID/Documents/mysite/style.css

Aber wenn ich jetzt versuche, das laden der html-Code in meiner webview mit diesem:

NSURL *test = [NSURL URLWithString:@"file:///Users/username/Library/Application Support/iPhone%20Simulator/5.1/Applications/12345-ID/Documents/mysite/"]
[myWebView loadHTMLString:<the content retrieved from index.html> baseURL:test];

Die css wird nicht geladen, wenn ich die Anforderung abfangen können, um das stylesheet mit einem NSURLProtocol ich kann sehen, dass die Anforderung falsch ist. Es wird versucht, Anfrage:

file:///style.css

anstelle der vollständigen URL. Jetzt kann ich dieses Problem lösen durch entfernen der /vor der /Stil.css in der html-Datei. Aber gibt es einen einfachen Weg, diese zu lösen in nativen code, ohne änderung des html?

  • Das ist genau das, was ich verwende (siehe Inhalt)
  • Haben Sie versucht, die '/' off der Ende des NSURL *test = [NSURL ....... Linie. Haben Sie möglicherweise einen doppelten Schrägstrich Bedingung Auftritt, die verursacht werden, die möglicherweise auf die Standardeinstellungen, um den Standort der Benutzer, nur ein Gedanke.
  • Funktioniert nicht 🙁
  • OK in einem letzten Versuch, versuchen, die Antwort, die ich zur Verfügung gestellt haben. Sollte es funktionieren, denn ich habe diese Methode in meinem eigenen apps, die Anzeige Tonnen von Bildern relative Pfade zu verwenden. Der einzige Unterschied ist in meinem HTML habe ich nicht den Schrägstrich vor den Dateinamen, was bedeutet, dass Sie Ihre "/style.css" ändern müsste, um "Stil.css". Gibt es einen Grund warum Ihr so gegen das???
  • Nein, es gibt nicht einen bestimmten Grund bin ich gegen das entfernen der / in front, aber der HTML-Code ist nicht von mir erstellt. Also ich wollte sehen, ob es war ein Weg, um dieses Problem zu lösen in der Muttersprache, so würde ich die Mühe der Ersteller zu entfernen /
  • Einfach Fragen!!! +1
  • Nebenbei bemerkt: Sie können eine lokale URI mit pathForResource:ofType: aus NSBundle und verweisen Sie dann mit file://<local_uri> im eigenen HTML-Code. Zum Beispiel, für jquery-2.1.1.min.js verwende ich: NSString *jQueryFile = [[NSBundle mainBundle] pathForResource:@"jquery-2.1.1.min" ofType:@"js"]; NSString *jQueryUri = [@"file://" stringByAppendingString:jQueryFile]; und dann habe ich einfach fügen Sie es auf meine HTML: NSString *html = [NSString stringWithFormat:@"<some_html><script type=\"text/javascript\" src=\"%@\"></script></some_html>", jQueryUri];. Schließlich: [myWebView loadHTMLString:html baseURL:nil];

InformationsquelleAutor Thys | 2012-06-27
Schreibe einen Kommentar