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
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:
utilizzare una funzione o una funzione jquery.ajax getJSON per ottenere/Post/put dati JSON da un URL specificato.
Questo URL è l'API tastypie creata dai tuoi modelli. potrebbe sembrare/API/VI/blog/all/
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.
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.
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
Questo non è corretto. Quando si esegue dal protocollo file: // sui browser mobili, CORS non viene applicato. –
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
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
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 –
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. –