2011-04-12 15 views
9

Bir UIWebView var ve ona bir SVG resmi yüklemek istiyorum. Dosyanın içeriği saf SVG yani <svg>...</svg>'dur. loadRequest kullanarak UIWebView de normal ve Mobil Safari ve içine ince dosya yükler: yaparak aşağıdaki:UIWebView yöntemleri arasındaki fark loadHTMLString: ve loadRequest

url = [NSURL fileURLWithPath:path]; 
NSURLRequest *req = [NSURLRequest requestWithURL:url]; 
[webView loadRequest:req]; 

Ancak, ben bir dizeye dosyanın içeriğini yüklemek ve HTML yüklemeye çalışırsanız web görünümüne içine dize, hiçbir şey görüntüler: yukarıdaki iki teknik arasında herhangi bir neden

html = [NSString stringWithContentsOfFile:path 
           encoding:NSASCIIStringEncoding 
            error:nil]; 
[webView loadHTMLString:html baseURL:nil]; 

var mı? Aynı sonuçları vermemeli mi? Dosya saf ASCII, bu yüzden bir kodlama sorunu olduğunu düşünmüyorum.

Şu anda bir dosya kullanarak ihtiyacım olan şeyi alabiliyorum, ancak dosya sistemini kalıcı olmayan verilerden kullanmaktan nefret ediyorum.

Herhangi bir yardım büyük beğeni topluyor !!!

sayesinde Ron

+0

Sorun, benim "html" inin gerçekten html olmaması olabilir mi? Dosyam başlıyor ve ' ...' ile bitiyor. Bir istek yüklenirken HTML olmayan dosyalar işlenirken, loadHTMLString metinlerin HTML olmasını gerektirir mi? – Ron

cevap

9

yerine loadData:MIMEType:textEncodingName:baseURL: kullanmak zorunda Bu sorunu çözmek için yardımcı olur.

NSData *data = [html dataUsingEncoding:NSUTF8StringEncoding]; 
[webView loadData:data MIMEType:@"application/xhtml+xml" textEncodingName:@"utf-8" baseURL:baseUrl]; 
+0

Bu mükemmel çalıştı. Yardım için çok teşekkür ederim! Bu çok takdir edilmektedir! – Ron

+0

xhtml + xml katı olduğundan ve html mükemmel değilse (yani, tüm etiketlerin düzgün şekilde kapatılması, vb.) Neden olacağından, MIMEType "text/html" kullanıyorum. – Larry

0

Bundan emin değilim ama baseURL nil olarak ayarlanırsa, ben webview içeriğini yüklemek için yerden bilmiyor düşünüyorum.

Umut bu SO soru u Link to resources inside WebView - iPhone

+0

Bilgi için teşekkürler! Ancak benim durumumda, HTML'nin tamamen kendi içinde yer almasından dolayı sorunun neden kaynaklandığını düşünmüyorum. – Ron

İlgili konular