2011-01-10 11 views
24

हम अपनी खुद की एचटीएमएल फाइल UIWebView में कैसे लोड कर सकते हैं?मैं UIWebView में एक स्थानीय HTML फ़ाइल कैसे लोड कर सकता हूं?

[WebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]isDirectory:NO]]]; 
+0

http://stackoverflow.com/questions/7063276/how-to-load-local-html-file-into-uiwebview-iphone/24159166# 24159166 – iGo

उत्तर

63

निम्नलिखित कोड अपने प्रोजेक्ट फ़ोल्डर में index.html नामित एक HTML फ़ाइल लोड होगा इसे लोड करने से पहले एचटीएमएल संपादित करें।

+0

ऐप्पल के दस्तावेज़ीकरण से पता चलता है कि स्थानीय HTML लोड करने के लिए इस विधि का उपयोग सुरक्षित नहीं है: '' 'सुरक्षा हमलों के प्रति संवेदनशील होने से बचने में आपकी सहायता के लिए, स्थानीय HTML फ़ाइलों को लोड करने के लिए इस विधि का उपयोग करना सुनिश्चित करें; loadRequest का उपयोग न करें: .''' मैंने नीचे दिए गए मेरे उत्तर में अपना सुझाव ('loadHTMLString: baseURL:') दर्ज किया है। –

+0

हाँ, यह नहीं कहा कि 5 साल पहले जब मैंने यह जवाब पोस्ट किया था। प्रलेखन पढ़ने के लिए हमेशा अच्छा है। मैं इसे हटा दूंगा, लेकिन यह स्वीकार्य उत्तर है और स्पष्ट रूप से बहुत से लोगों की मदद की है। –

28

कोड़ी ग्रे सही है लेकिन वहां भी इस तरह से है::

// Load the html as a string from the file system 
NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]; 
NSString *html = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; 

// Tell the web view to load it 
[WebView loadHTMLString:html baseURL:[[NSBundle mainBundle] bundleURL]]; 

अगर आप की जरूरत है उपयोगी है

+0

आप सही हैं लेकिन मैं 'baseURL' के लिए 'nil' के बजाय' [NSURL fileURLWithPath: [[NSBundle mainBundle] बंडलपाथ]] पास कर दूंगा। – Jilouc

+0

आह हाँ - मुझे HTML से अन्य संसाधन लोड करने के बारे में याद नहीं होगा। मैंने अपना जवाब संपादित कर लिया है, धन्यवाद! – deanWombourne

+0

मैं पास करूँगा [[एनएसबंडल मेनबंडल] बंडल यूआरएल] –

2

निम्नलिखित कोड का उपयोग कर आप एक WebView.here वेब में एक एचटीएमएल लोड कर सकते हैं के द्वारा वेब दृश्य obj और स्वतंत्र

Web.delegate = self; 

[Web loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]isDirectory:NO]]]; 
5

स्विफ्ट है

guard let path = NSBundle.mainBundle().pathForResource("index", ofType: "html") else { 
     return 
    } 

    let url = NSURL(fileURLWithPath: path) 
    self.webview.loadRequest(NSURLRequest(URL:url)) 
0

स्विफ्ट संस्करण 2.1

// load html to String with Encoding 
let path = NSBundle.mainBundle().pathForResource("policy", ofType: "html") 
do { 
    let fileHtml = try NSString(contentsOfFile: path!, encoding: NSUTF8StringEncoding) 
    webView.loadHTMLString(fileHtml as String, baseURL: nil) 
} 
catch { 

} 
0

ऐप्पल डी ocumentation loadHTMLString:baseURL: उपयोग करने का सुझाव: विधि लोड हो रहा है वेब सामग्री शुरू करने के लिए: स्थानीय HTML फ़ाइलों या loadRequest लोड हो रहा है शुरू करने के लिए विधि: baseurl:

loadHTMLString का प्रयोग करें। लोडिंग को रोकने के लिए स्टॉपलोडिंग विधि का उपयोग करें, और लोडिंग प्रॉपर्टी यह पता लगाने के लिए करें कि कोई वेब व्यू लोड होने की प्रक्रिया में है या नहीं।

loadHTMLString:baseURL: दस्तावेज़ आगे के तर्क प्रदान करता है:

आप सुरक्षा हमले के लिए असुरक्षित जा रहा से बचने के लिए स्थानीय HTML फ़ाइलों को लोड करने के लिए इस विधि का उपयोग करने के लिए सुनिश्चित हो मदद करने के लिए; loadRequest का उपयोग न करें:।

यह एक मदद कर सकता है: https://stackoverflow.com/a/29741277

0
NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"privacy-Policy" ofType:@"html" inDirectory:nil]; 
NSData *htmlData = [NSData dataWithContentsOfFile:htmlFile]; 
[webView loadData:htmlData MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:[NSURL URLWithString:@""]]; 
संबंधित मुद्दे