Estoy tratando de cargar un archivo html en mi UIWebView pero no funcionará. Aquí está la etapa: tengo una carpeta llamada html_files en mi proyecto. Luego creé un webView en el generador de interfaces y le asigné una salida en viewController. Este es el código que estoy usando para agregar el archivo html:
-(void)viewDidLoad
{
NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"html" inDirectory:@"html_files"];
NSData *htmlData = [NSData dataWithContentsOfFile:htmlFile];
[webView loadData:htmlData MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:[NSURL URLWithString:@""]];
[super viewDidLoad];
}
Eso no funcionará y UIWebView está en blanco. Agradecería un poco de ayuda.
ios
objective-c
iphone
cocoa-touch
uiwebview
madcoderz
fuente
fuente
EDITAR 2016-05-27 -
loadRequest
expone "una vulnerabilidad universal de secuencias de comandos entre sitios". Asegúrese de poseer cada uno de los activos que carga. Si carga un script incorrecto, puede cargar lo que quiera.Si necesita enlaces relativos para trabajar localmente, use esto:
El paquete buscará todos los subdirectorios del proyecto para encontrar
my.html
. (la estructura del directorio se aplana en el momento de la compilación)Si
my.html
tiene la etiqueta<img src="some.png">
, el webView se cargarásome.png
desde su proyecto.fuente
con esto puede cargar el archivo html que está en los Activos (paquete) de su proyecto en webView.
Puede ser que esto te sea útil.
fuente
Supongo que necesitas
allocate
e iniciar tuwebview
primera ::fuente
Un fragmento de código simple de copiar y pegar:
Nota:
Asegúrese de que la membresía de destino del archivo html esté marcada; de lo contrario, se generará la siguiente excepción: -
Finalización de la aplicación debido a una excepción no detectada
'NSInvalidArgumentException', reason: '*** -[NSURL initFileURLWithPath:isDirectory:]: nil string parameter'
fuente
Para Swift 3 y Swift 4:
fuente
fuente
Puede ser que su archivo HTML no sea compatible con la codificación UTF-8, porque el mismo código funciona para mí.
O también puede estas líneas de código:
fuente
Aquí la forma en que funciona el archivo HTML con Jquery.
Puede usar las solicitudes para llamar al archivo HTML en su UIWebview
fuente
Asegúrese de que "html_files" es un directorio en el paquete principal de su aplicación, y no solo un grupo en Xcode.
fuente
Una nueva forma de hacer esto usando swift. UIWebView ya no existe y WKWebView es la nueva clase para cargar páginas web, lo que garantiza las características de Safari en la vista web.
fuente
fuente
Puede ser tarde, pero si el archivo
pathForResource
es denil
, debe agregarlo en el archivoBuild Phases > Copy Bundle Resources
.fuente
Aquí está Swift 3:
fuente
fuente
En Swift 2.0, la respuesta de @ user478681 podría verse así:
fuente
Ponga todos los archivos (html y recursos) en un directorio (para mi "manual"). A continuación, arrastre y suelte el directorio en XCode, sobre "Archivos de soporte". Debe verificar las opciones "Copiar elementos si es necesario" y "Crear referencias de carpeta". A continuación, escriba un código simple:
Atención a
@"manual/index"
, manual de es el nombre de mi directorio! Es todo !!!! Perdón por mi mal ingles...================================================== =====================
Hola desde Costa Rica. Ponga los archivos (html y otros recursos) en un directorio (en mi caso lo llamé manual), luego, arrastre y suelte en XCode, sobre "Archivos de soporte". Usted debe seleccionar las opciones "Copiar elementos si es necesario" y "Crear referencias de carpeta".
Presta atención a
@"manual/index"
, manual es el nombre de mi directorio !!fuente
Cuando su proyecto crezca, es posible que necesite algo de estructura, de modo que su página HTML pueda hacer referencia a archivos ubicados en subcarpetas.
Suponiendo que arrastre su
html_files
carpeta a Xcode y seleccione la opción Crear referencias de carpeta , el siguiente código Swift asegura que elWKWebView
soporte también sea compatible con la estructura de carpetas resultante:Esto significa que si su
sample.html
archivo contiene una<img src="subfolder/myimage.jpg">
etiqueta, entonces el archivo de imagenmyimage.jpg
ensubfolder
que también se va a cargar y se muestra.Créditos: https://stackoverflow.com/a/8436281/4769344
fuente