webkitview tutorial apple javascript html5 uiwebview

javascript - tutorial - wkwebview apple



UIWebView no carga el archivo Javascript externo (4)

Tengo el siguiente código de aspecto inocente (index.html), pero no carga el archivo code.js Funciona bien si copio / pego el contenido del archivo en la página HTML. Ambos archivos index.html y code.js están en el mismo directorio. Este es el fragmento de código. Cualquier ayuda sería genial.

index.html:

<html> <head> <script type="text/javascript" src="code.js"></script> </head> <body onload="drawImage()"> <div><canvas id="canvas" width="320" height="480"></canvas></div> </body> </html>

ViewController.m:

- (void)viewDidLoad { [super viewDidLoad]; // load the first webpage [homePageWebView loadRequest:[NSURLRequest requestWithURL:[NSURLfileURLWithPath: [[NSBundle mainBundle] pathForResource:@"index"ofType:@"html"] isDirectory:NO]]]; }


He descubierto que Xcode cree que el archivo js debe compilarse.

Abra el proyecto en Xcode. Vaya a "Objetivos" y busque "Compilar fuentes". Si ve su archivo js en esa carpeta, muévalo a la carpeta "Copiar recursos del paquete" y elimínelo de la carpeta "Compilar fuentes".

Elimine la aplicación de su iPhone si ya está instalada para la prueba. Ve al menú Generar en Xcode y limpia todos los objetivos. Luego recompila

Compruebe ahora si su archivo HTML realmente ve su archivo js ahora.

Linda


También me enfrenté al mismo problema: lo superé haciendo lo simple al agregar los archivos a XCode. Hice un pequeño cambio que se muestra en la figura siguiente:

En la figura siguiente, una es para agregar archivos HTML, Javascript y CSS, y la segunda es para archivos generales de XCode.


Para complementar la respuesta de Linda, aquí es donde encuentras los archivos:


Necesita leer el archivo html en una cadena y establecer el URL base al cargar para que se puedan entender las rutas relativas.

NSError* error; NSString* html = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"] encoding:NSASCIIStringEncoding error:&error]; [webview loadHTMLString:html baseURL:[self getBaseURL]]; - (NSURL*) getBaseURL { NSString* path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]; NSRange r = [path rangeOfString:@"/" options:NSBackwardsSearch]; path = [path substringToIndex:r.location]; path = [path stringByReplacingOccurrencesOfString:@"/" withString:@"//"]; path = [path stringByReplacingOccurrencesOfString:@" " withString:@"%20"]; path = [NSString stringWithFormat:@"file:/%@//",path]; return [NSURL URLWithString:path]; }

Algo así debería funcionar para ti.