2011-12-02 16 views
6

Soy nuevo en la programación de iOS y traté de averiguar qué es realmente loadHTMLString:baseURL:, pero no puedo encontrar una explicación satisfactoria. El sitio de Apple simplemente dice:¿Qué significa loadHTMLString: baseURL:

Establece el contenido de la página principal y la URL base.

¿Alguien me puede explicar esto de una manera más detallada?

Respuesta

3

Así se carga principalmente el contenido en una vista web. ya sea desde un archivo html local o a través de una url.

//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

Si quiero cargar un archivo local, puedo reemplazar @ "" con @ index.html. ¿derecho? – MACMAN

4

Estoy bastante seguro de que la URL base se utiliza al igual que en las páginas web normales para cargar correctamente Recursos que se hace referencia mediante enlaces relativos. Ahora la pregunta es cómo establecer esa URL base en una carpeta particular en el directorio de la aplicación.

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

se utiliza para cargar archivos local HTML, cadena de parámetro hace referencia al contenido del archivo html, si el archivo de HTML contiene algunas href etiqueta con ruta relativa, debe establecer el parámetro baseUrl con la dirección base del archivo HTML, o configúrelo 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"]; 
}