2012-05-24 18 views
18

Actualmente estoy comenzando a construir una aplicación móvil usando jQuery Mobile y la envuelvo con Phonegap para compatibilidad con aplicaciones nativas, es una extensión de nuestra aplicación de escritorio ya existente escrita en Django , mi pregunta es, ¿cuál es la mejor manera de conectar la aplicación del cliente escrita en html5/js/css al lado del servidor, solo usaría JSON para enviar/recibir datos, y alguien tiene buenos artículos sobre esto?Creando una aplicación móvil con jQuery Mobile, Django y Phonegap

Respuesta

19

Personalmente he creado varias aplicaciones nativas con JqueryMobile como mi interfaz - Django como el lado del servidor - y phonegap para envolver de forma nativa en una aplicación de iTunes. Realmente es una gran combinación de tecnologías que, si se realizan correctamente, pueden generar una aplicación nativa rápida.

En primer lugar, debe buscar en Tastypie. Tastypie es una forma realmente fácil de crear una API RESful instantánea que puede enviar datos JSON a javascript/JQuery. Es una aplicación de Django y es muy pitónica (muchas anulaciones fáciles de clase/método, todo es transparente).

El flujo de transferencia de datos sería algo como esto:

  1. utilizar una función o una función jquery.ajax getJSON para obtener datos JSON/poste/put desde una URL especificada.

  2. Esta URL es la sabrosa API creada a partir de sus Modelos. podría verse como/api/vi/blogs/all/

  3. Ahora tiene datos JSON en su interfaz con Jquery, puede hacer lo que quiera con ellos - complete una tabla - trabaje con formularios - etc.

Primero Eche un vistazo a algunas funciones móviles ajax de Jquery/Jquery y cómo trabajar con JSON en la interfaz con la biblioteca Jquery. En segundo lugar, familiarícese con el envío de JSON a una vista de Django (analizando los datos y guardándolos en la base de datos). Luego, profundice en los detalles de la interfaz de usuario de JQuery Mobile y los pasos para que funcione bien con PhoneGap.

+1

Otra pregunta que tengo, es si estoy utilizando el sistema de autenticación de Django, y necesito que los usuarios inicien sesión, ¿cómo lo lograré ?, así que cuando abran la aplicación les pedirá que inicien sesión una vez, y tendrán la opción de recordar el nombre de usuario/password y mantener al usuario conectado, solo preguntando cuál es la mejor manera de lograrlo, viendo cómo la aplicación phonegap será del lado del cliente html/css/js y django estará alimentando los datos JSON a la aplicación – flaiks

+4

Hey - I También lo he hecho varias veces. Podrías ENVIAR JSON de vuelta a Django. Tienes tu formulario de acceso y recoges el nombre de usuario/contraseña del formulario de acceso. Hay algunas formas de hacerlo. Tu acción en el formulario de envío puede enviar el nombre de usuario/contraseña a una url django que tomará y comparará el nombre de usuario/contraseña en una función de vista. Su acción de formulario podría ser action =/check-login/pasando los datos. También puede hacer esto con ajax - en lugar de enviando el formulario - use ajax para enviar el campo d datos a la misma URL de django/vista –

+2

En segundo lugar, para mantener a alguien conectado, puede usar el almacenamiento local de PhoneGap para mantener los datos sobre el usuario en el dispositivo. Guarde las preferencias del usuario, etc. –

4

Una de las cosas que deberá tener en cuenta son las características del mismo origen integradas en jquery. Como phonegap usa una vista web con un archivo url: // cualquier solicitud web que realices será de dominio cruzado, por lo que debes configurar jquery mobile para permitirlo.

ver http://jquerymobile.com/test/docs/pages/phonegap.html

Aparte de eso, no hay mucha diferencia entre una aplicación móvil PhoneGap y una aplicación web regulares en cuanto a conseguir/publicar JSON.

+0

Bueno Normalmente, cómo lo programaría es usar jQuery mobile para construir mi marco html y codificarlo en plantillas de django, y luego usar django para generar los datos en esas vistas/plantillas. Entonces, lo que estaba preguntando es si JSON es el mejor enfoque para eso. – flaiks

+1

Esto no es correcto. Cuando se ejecuta desde el protocolo file: // en navegadores móviles, el CORS no se aplica. –

+1

Según el enlace de mi respuesta "Dado que jQuery Mobile se basa en la funcionalidad $ .ajax() de jQuery core, $ .support.cors debe establecerse en verdadero para indicar a $ .ajax que cargue páginas de dominio cruzado. Hemos escuchado informes de que las vistas web en algunas plataformas, como BlackBerry, admiten la carga entre dominios, pero ese núcleo jQuery establece incorrectamente el valor $ .support.cors en falso, lo que deshabilita las solicitudes $ .ajax() entre dominios y hará que la página o los activos no se carguen ." – chad

Cuestiones relacionadas