2012-06-28 29 views
9

Tengo una aplicación iOS para cargar una cadena html que hace referencia al archivo css externo y al archivo javascript en el mismo directorio.iOS loadHtmlString en UIWebView no funciona con Javascript

Aquí está mi archivo html:

<html> 
<head> 
    <meta name="viewport" content= user-scalable="no", width="device-width" /> 
    <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8"/> 
    <link rel="stylesheet" type="text/css" href="mystyle.css" /> 
    <script type="text/javascript" src="myjavascript.js"></script> 
</head> 

el archivo CSS funciona bien, pero parece que el archivo js no cargado. ¿Cuál podría ser la razón?

Por cierto estoy usando el método loadHtmlString: BaseUrl para cargar mi cadena html.

Gracias

+1

Consulte [este] (http://stackoverflow.com/questions/7012537/sourcing-local-javascript-in-uiwebview-ios?rq=1) enlace y espero que sea útil ya que no lo he intentado. –

+0

¿Puedes mostrar tu código de iOS para esto? – nhahtdh

+3

Verifique que el javascript esté en su sección * Copiar recursos del paquete * y no en la sección * Fuentes de compilación *. No sé por qué, pero a veces Xcode cree que debería compilar su Javascript. Por supuesto, no puede, por lo que acaba con un montón de código no operativo y sin recursos para su HTML. – borrrden

Respuesta

6

Esta pregunta es un poco viejo, pero ya que no ha sido respondida, me gustaría señalar que si le gustaría que su vista web para cargar un archivo JavaScript que reside en su paquete, el camino para hacerlo es:

[webView loadHTMLString:html 
       baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]]; 

Si no especifica el baseURL no hay posibilidad de que el archivo javascript esté cargado.

+0

Esto es exactamente lo que hice. El problema es que javascript aún no está cargado aunque el css está bien. –

+0

Veo ... ¿está seguro de que su javascript no contiene algunos errores? el problema con JS es que falla silenciosamente. como una depuración muy cruda, podría poner algunas declaraciones de alerta en ella (por ejemplo, la primera línea en su archivo js), y ver si aparecen ... – sergio

+0

Sí, he probado que solo agregue una línea de JS código para alertar. Pero no funciona. El CSS funciona. Gracias de cualquier manera. –

2

como los otros han dicho

  • uso URLbase: [NSURL fileURLWithPath: [[NSBundle mainBundle] bundlePath]]];

  • copia Bundle Resources y no en Compile Resources.

eso es todo!

5

De forma predeterminada, xcode colocará nuevos archivos Javascript en Recursos de compilación en lugar de Recursos de paquete. Haga clic en su proyecto y luego en su objetivo. En "Crear fases", puede ver los archivos de Javascript en "Compilar fuentes". Arrástrelos hacia abajo para 'Copiar recursos del paquete'.

+1

Esto es exactamente lo que me sucedió cuando arrastré algunos archivos JS a mi proyecto. Los eliminé de ** Compilar recursos ** porque Xcode arrojaba un error, pero sin que estuvieran en ** Recursos del paquete **, no estaban disponibles para mi aplicación. ¡Gracias! –

+0

¡Esto me salvó la vida! Gracias @Kevin Borders! – gilsaints88

Cuestiones relacionadas