2012-05-24 107 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

相关问题