¿Cómo puedo escribir una aplicación para el iPhone completamente en JavaScript sin hacer simplemente una web app?

StackOverflow https://stackoverflow.com/questions/64420

  •  09-06-2019
  •  | 
  •  

Pregunta

No quiero tomar el tiempo para aprender Obj-C.He pasado más de 7 años realizando programación de aplicaciones web.No hay una manera de utilizar el WebView y acaba de escribir toda la aplicación en javascript, tirando de los archivos de los recursos del proyecto?

¿Fue útil?

Solución

He encontrado la respuesta después de buscar alrededor.He aquí lo que he hecho:

  1. Crear un nuevo proyecto en XCode.Creo que he utilizado la función de la vista de la aplicación.

  2. Arrastre un WebView objeto en su interfaz y cambiar de tamaño.

  3. En el interior de su WebViewController.m (o similar nombre del archivo de nombre, dependiendo el nombre de la vista), en el método viewDidLoad:

    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];  
    NSData *htmlData = [NSData dataWithContentsOfFile:filePath];  
    if (htmlData) {  
      NSBundle *bundle = [NSBundle mainBundle]; 
      NSString *path = [bundle bundlePath];
      NSString *fullPath = [NSBundle pathForResource:@"index" ofType:@"html" inDirectory:path];
      [webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:fullPath]]];
    }
  4. Ahora todos los archivos que se han añadido como recursos para el proyecto están disponibles para su uso en su aplicación web.Tengo un index.html archivos javascript y css y los archivos de imagen sin problemas.La única limitación que he encontrado hasta ahora es que no puedo crear carpetas nuevas para todos los archivos desordenadamente en la carpeta de recursos.

  5. Truco:asegúrese de que se ha añadido el archivo como un recurso en XCode o el archivo no estará disponible.He estado añadiendo un archivo vacío en XCode, a continuación, arrastrando mi archivo en la parte superior en el finder.Que ha estado trabajando para mí.

Nota:Me doy cuenta de que Obj-C no debe ser tan difícil de aprender.Pero como ya tengo esta aplicación existente en JS y sé que funciona en Safari esto es mucho más rápido dev ciclo para mí.Algún día estoy seguro de que voy a tener que romper y aprender Obj-C.

Algunos otros recursos que he encontrado útiles:

Llamar Obj-C de javascript: llamar a objective-c desde javascript

Llamar javascript en Obj-C: desarrollo de aplicaciones de iphone para la web de los hackers

La lectura de los archivos de paquete de la aplicación: uiwebview

Otros consejos

Echa un vistazo en PhoneGap http://www.phonegap.com dicen que te permite insertar JavaScript, HTML y CSS en un nativo de la aplicación de iPhone.

Para aquellos que hacen esto en el iPhone 2.1 (quizá 2.0), NO es necesario crear servicios especiales para almacenamiento de datos locales.MobileSafari parece apoyar el HTML5/WHATWG SQL de la base de datos de la API.Este es el mismo API compatible con versiones recientes de escritorio de Safari y Firefox.

Si usted está usando un conjunto de herramientas como Dojo o ExtJS que ofrece un almacenamiento de abstracción, el código debería funcionar en cualquier navegador moderno, incluyendo MobileSafari.

Para prueba, abra http://robertsanders.name/dev/stackoverflow/html5.html en tu iPhone.

Si usted abra la página, a continuación, busque en el sistema de archivos de un iPhone con Jailbreak, usted debe ver a una base de datos en algún lugar en /private/var/mobile/Library/WebKit/Bases de datos/.Incluso hay un directorio de web-abrió DBs allí.

root# sqlite3 /private/var/mobile/Library/WebKit/Bases de datos/Bases de datos.db SQLite versión 3.5.9 Enter ".ayuda" para instrucciones

sqlite> .las bases de datos de seq nombre de archivo


0 main /private/var/mobile/Library/WebKit/Bases de datos/Bases de datos.db

sqlite> .tablas

Las Bases De Datos De Orígenes

sqlite> select * from Bases de datos;

1|http_robertsanders.name_0|NoteTest||Base de datos de ejemplo de API|20000|0000000000000001.db

sqlite> select * from Orígenes;

http_robertsanders.name_0|5242880

Usted puede crear una aplicación sin saber nada de los obj-C.El QuickConnectiPhone marco permite hacer esto.Echa un vistazo http://tetontech.wordpress.com de cómo usarlo, así como otras formas de hacer lo que te han pedido.

Usted debe tener el nativo de contenedor escritas en Objective C.Este contenedor puede contener muy pocas líneas de código (por ejemplo, 10) es necesario crear un WebView y desplazarse a la siguiente dirección en la internet (donde reside la aplicación).Pero en este caso, su aplicación debe ser una completa aplicación web (quiero decir, no sólo el JavaScript, pero también algo de HTML para el marcado).

Me encontré con este mismo problema.Ya tengo un juego escrito completamente en Javascript.Me encantaría hacer una versión para iPhone, pero Obj-C es una exageración.Lo que terminé haciendo fue con WebView para que apunte a una url especial de la aplicación de iphone.Después de pensarlo, supongo que yo sólo podía mover los archivos a la aplicación del directorio y ejecutar de forma local.

No hay forma de hacerlo con la actual manzana de la API.Su mejor apuesta es para escribir un simple nativo de la aplicación de iPhone que incorpora el navegador webkit.Que te permitirá navegar a su xhtml/js aplicación localmente.

Si desea almacenar los datos, usted tendrá que tomar un paso más allá e incluyen un poquito de peso servidor http, que los servidores de su aplicación y proporciona llamadas para almacenar y recuperar datos.Probablemente no es una solución ideal para usted, pero posiblemente menos trabajo que un total Obj-C de la aplicación.

Como una nota del lado, Obj-C es bastante fácil de aprender.Hay un montón de ejemplos en el SDK.La comunidad es fuerte y va a responder bien las preguntas sin dudarlo.

mira el nuevo o'reilly libro en el asunto

He estado usando phonegap por un tiempo y que parece tener los mejores resultados para mí.Voy a publicar mi experiencia en una semana o así, con un enlace a mi app así.

Titanio Móvil es también una opción que permite escribir código JavaScript que se traduce en Objective-C.

Al menos 2 otros mencionados phonegap, pero pensé que me gustaría publicar esta demasiado y mencionar que Apple ha aprobado el framework phonegap.Por lo tanto, ahora que usted no recibirá su aplicación rechazado por Apple sólo porque usted está usando phonegap.

Entrada de Blog acerca de phonegap y Apple http://blogs.nitobi.com/jesse/2009/11/20/phonegapp-store-approval/

Brecha De Teléfono De Casa

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top