2012-05-24 137 views
18

我目前正在開始使用jQuery Mobile構建移動應用程序,並使用Phonegap將其包裝爲原生應用程序支持,它是我們已有的用Django編寫的桌面應用程序的擴展,我的問題是,將使用html5/js/css編寫的客戶端應用程序連接到服務器端的最佳方式是什麼,我只使用JSON來發送/接收數據,並且沒有人有任何關於此的好文章?使用jQuery Mobile,Django和Phonegap構建移動應用程序

回答

19

我個人已經創建了多個本地應用程序,並將JqueryMobile作爲我的前端 - Django作爲服務器端 - 並將phonegap本地包裝到iTunes Store應用程序中。這真的是一個很好的技術組合 - 如果正確的話 - 可以產生一個快速的本地應用程序。

首先你應該看看Tastypie。 Tastypie是一種非常簡單的方法來創建即時RESful API,可以將JSON數據發送到JavaScript/JQuery。它是一個Django應用程序,它非常pythonic(大量簡單的類/方法覆蓋 - 一切都是透明的)。

數據傳輸的流量將是這個樣子:

  1. 使用jquery.ajax函數或函數的getJSON獲得從指定的URL /後/ PUT JSON數據。

  2. 此URL是從模型創建的tastypie API。它可能看起來像/ api/vi/blogs/all/

  3. 現在你的JSON數據在你的前端與Jquery - 你可以做任何你想要的東西 - 填寫表格 - 使用表格 - 等

首先查看一些Jquery/Jquery移動ajax函數以及如何使用Jquery庫在前端使用JSON。其次,熟悉將JSON發送回Django視圖(解析數據並將其保存到數據庫)。然後深入瞭解JQuery Mobile用戶界面的具體細節以及使其與PhoneGap良好協作的步驟。

+1

我的另一個問題是,如果即時通訊使用Django身份驗證系統,並且我需要用戶登錄,我將如何實現這一目標,因此當他們打開應用程序時會提示他們登錄一次,並且他們可以選擇記住用戶名/密碼,並保持用戶登錄,只是想知道什麼是實現這一目標的最佳方式,看到phonegap應用程序將如何客戶端的HTML/CSS/JS和Django將餵養的JSON數據的應用程序 – flaiks

+4

嘿 - 我你也可以將JSON發送回Django,你有你的登錄表單,你從登錄表單中收集用戶名/密碼,有幾種方法可以從這裏開始。可以將用戶名/密碼發佈到一個django url,它將在視圖函數中獲取並比較用戶名/密碼。你的表單操作可能是action =/check-login /傳遞數據。你也可以用ajax來做 - 而不是提交表單 - 使用ajax發送表單d數據到相同的django網址/視圖 –

+2

其次 - 爲了讓某人登錄 - 您可以使用PhoneGap本地存儲來保存關於設備上用戶的數據。保存用戶首選項等。 –

4

您需要注意的一件事是jquery內置的同源功能。由於phonegap使用帶有url文件的webview://您所做的任何Web請求都將跨域,因此您需要配置jquery mobile以允許它。

看到比其他http://jquerymobile.com/test/docs/pages/phonegap.html

,有沒有關於獲取/發佈JSON一個PhoneGap的移動應用程序和常規網絡應用程序相差無幾。

+0

那麼通常,我將如何編程它是使用jQuery手機來構建我的html框架和代碼到Django模板中,然後使用django將數據輸出到這些視圖/模板中。那麼我問的是,如果JSON是最好的方法呢? – flaiks

+1

這是不正確的。當從移動瀏覽器上的file://協議運行時,CORS不適用。 –

+1

根據我的回答中的鏈接「由於jQuery Mobile依賴於jQuery核心的$ .ajax()功能,因此必須將$ .support.cors設置爲true以告訴$ .ajax加載跨域頁面。一些平臺上的網頁瀏覽器(如BlackBerry)支持跨域加載,但jQuery內核錯誤地將$ .support.cors值設置爲false,從而禁用跨域$ .ajax()請求並導致頁面或資產無法加載。「 – chad

相關問題