2011-12-02 11 views
6

मैं आईओएस प्रोग्रामिंग के लिए नया हूं और यह पता लगाने की कोशिश की कि loadHTMLString:baseURL: वास्तव में क्या करता है, लेकिन मुझे एक संतोषजनक स्पष्टीकरण नहीं मिल रहा है। ऐप्पल की साइट बस कहती है:loadHTMLString क्या करता है: baseURL:

मुख्य पृष्ठ सामग्री और आधार URL सेट करता है।

क्या कोई इसे मेरे लिए अधिक विस्तृत तरीके से समझा सकता है?

उत्तर

3

इस प्रकार मुख्य रूप से सामग्री वेबव्यू में लोड की जाती है। या तो स्थानीय एचटीएमएल फाइल से या यूआरएल के माध्यम से।

//this is to load local html file. Read the file & give the file contents to webview. 
[webView loadHTMLString:someHTMLstring baseURL:[NSURL URLWithString:@""]]; 

//if webview loads content through a url then 
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://google.com"]]] 
+0

यदि मैं एक स्थानीय फ़ाइल लोड करना चाहता हूं तो मैं @ index.html के साथ @ "" को प्रतिस्थापित कर सकता हूं। सही? – MACMAN

4

मैं बहुत कुछ कर रहा हूँ कि baseurl ठीक से ressources कि रिश्तेदार लिंक का उपयोग कर संदर्भित लोड करने के लिए नियमित रूप से वेब पृष्ठों में बस की तरह प्रयोग किया जाता है। अब सवाल यह है कि ऐप निर्देशिका में किसी विशेष फ़ोल्डर में उस बेस यूआरएल को कैसे सेट करें।

1
- (void) loadHTMLString:(NSString *)string baseURL:(nullable NSURL *)baseURL; 

स्थानीय HTML फ़ाइल लोड करने के लिए किया जाता है, पैरामीटर स्ट्रिंग, एचटीएमएल फ़ाइल की सामग्री का मतलब है अपने HTML फ़ाइल रिश्तेदार पथ के साथ कुछ href टैग है, तो आप HTML फ़ाइल के आधार पते के साथ पैरामीटर baseUrl स्थापित करना चाहिए, या इसे nil सेट करें।

NSString *cachePath = [self cachePath]; 
NSString *indexHTMLPath = [NSString stringWithFormat:@"%@/index.html", cachePath]; 
if ([self fileIsExsit:indexHTMLPath]) { 
    NSString *htmlCont = [NSString stringWithContentsOfFile:indexHTMLPath 
                  encoding:NSUTF8StringEncoding 
                   error:nil]; 
    NSURL *baseURL = [NSURL fileURLWithPath:cachePath]; 
    [self.webView loadHTMLString:htmlCont baseURL:baseURL]; 
} 

- (NSString *)cachePath 
{ 
    NSArray* cachePath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); 
    return [cachePath[0] stringByAppendingPathComponent:@"movie"]; 
} 
संबंधित मुद्दे