2012-05-24 1 views
18

Attualmente sto iniziando a creare un'applicazione mobile utilizzando jQuery Mobile e lo avvolgo con PhoneGap per il supporto nativo delle app, è un'estensione della nostra applicazione desktop già esistente scritta in Django , la mia domanda, è qual è il modo migliore per connettere l'app lato client scritta in html5/js/css sul lato server, dovrei semplicemente usare JSON per inviare/ricevere dati, e qualcuno ha qualche buon articolo su questo?Creazione di un'app mobile con jQuery Mobile, Django e Phoneegap

risposta

19

Personalmente ho creato più app native con JqueryMobile come frontend - Django come lato server - e phonegap in modo nativo per avvolgere in un'applicazione store itunes. È davvero una grande combinazione di tecnologie che, se fatte correttamente, possono produrre un'applicazione nativa veloce.

Prima di tutto dovresti dare un'occhiata a Tastypie. Tastypie è un modo davvero semplice per creare un'API RESful istantanea che può inviare dati JSON a javascript/JQuery. È un'app di Django ed è molto pitonica (un sacco di semplici override di classe/metodo - tutto è trasparente).

Il flusso di trasferimento dei dati potrebbe essere simile a questa:

  1. utilizzare una funzione o una funzione jquery.ajax getJSON per ottenere/Post/put dati JSON da un URL specificato.

  2. Questo URL è l'API tastypie creata dai tuoi modelli. potrebbe sembrare/API/VI/blog/all/

  3. Ora si dispone di dati JSON nel frontend con Jquery - si può fare quello che vuoi con esso - compilare una tabella - lavora con le forme - ecc

Prima Scopri alcune funzioni ajax cellulare Jquery/jQuery e come lavorare con JSON sul frontend con la libreria jQuery. In secondo luogo, familiarizzare con l'invio di JSON a una vista Django (analizzando i dati e salvandoli nel database). Quindi approfondisci le specifiche dell'interfaccia utente di JQuery Mobile e i passaggi per farlo funzionare correttamente con PhoneGap.

+1

Un'altra domanda che ho, è se sto usando il sistema di autenticazione Django, e ho bisogno che gli utenti effettuino il login come potrei ottenerlo, così quando aprono l'app gli chiede di fare il login una volta, e avranno la possibilità di ricordare nome utente/password e tieni l'utente loggato, ti chiedi quale sia il modo migliore per ottenere questo, visto che l'app di phonegap sarà lato client html/css/js e django alimenterà i dati JSON all'app – flaiks

+4

Hey - I Lo hai fatto un paio di volte. Puoi INVIARE JSON a Django, hai il tuo modulo di accesso e raccogli il nome utente/password dal modulo di accesso. Ci sono alcuni modi per andare da qui. La tua azione nel modulo di invio può POST il nome utente/password per un URL django che prenderà e confronterà il nome utente/password in una funzione di visualizzazione.L'azione del modulo potrebbe essere action =/check-login/passare i dati. Puoi anche farlo con ajax - invece di invio del modulo - usa ajax per inviare il campo d dati allo stesso URL/vista django –

+2

In secondo luogo - per mantenere l'accesso di qualcuno - è possibile utilizzare l'archiviazione locale di PhoneGap per conservare i dati dell'utente sul dispositivo. Salva le preferenze dell'utente, ecc. –

4

Una delle cose che devi cercare sono le stesse caratteristiche di origine incorporate in jQuery. Dal momento che phonegap utilizza una webview withl url file: // ogni richiesta web che fai sarà cross domain, quindi devi configurare jquery mobile per permetterlo.

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

Oltre a questo, non c'è molta differenza tra un'applicazione mobile PhoneGap e una web app regolare rispetto a ottenere/distacco JSON.

+0

Beh Normalmente, come vorrei programmare è usare jQuery mobile per costruire il mio framework html e codificarlo in modelli django, e quindi usare django per emettere i dati in tali viste/modelli. Quindi, quello che stavo chiedendo, è se JSON è l'approccio migliore? – flaiks

+1

Questo non è corretto. Quando si esegue dal protocollo file: // sui browser mobili, CORS non viene applicato. –

+1

Per il collegamento nella mia risposta "Poiché jQuery Mobile si basa sulla funzionalità $ .ajax() di jQuery core, $ .support.cors deve essere impostato su true per indicare a $ .ajax di caricare le pagine tra domini. le visualizzazioni Web su alcune piattaforme, come il BlackBerry, supportano il caricamento interdominio, ma il nucleo jQuery imposta erroneamente il valore $ .support.cors su false che disabilita le richieste $ .ajax() tra domini e causa il mancato caricamento della pagina o delle risorse ." – chad