【问题标题】:Web application using Play framework and sencha使用 Play 框架和 sencha 的 Web 应用程序
【发布时间】:2012-02-18 18:02:31
【问题描述】:

好的,我一直在考虑使用 play 框架作为我的后端服务和 sencha 作为我的前端的东西来开发一个 Web 应用程序。

现在我也在研究 sencha touch 和 phonegap,它们可以帮助我制作一个原生的 android 应用程序。所以这里的问题是我如何将数据呈现给两个不同的设备。一种是触摸设备,另一种是在适当的桌面浏览器中打开。

我应该检测从哪个设备发出请求,然后加载适当的控制器还是什么?我现在真的很困惑!我对网络和移动应用程序场景非常陌生,所以如果有人可以向我解释如何进行,那将是一个很大的帮助!谢谢。

【问题讨论】:

    标签: web-applications playframework extjs mobile-application sencha-touch-2


    【解决方案1】:

    我也用 Sencha,不是 Touch,而是 Ext Js。我所做的如下:

    玩!服务器包含我的逻辑并为我提供 Restful URL:

    POST   /user/create          AccountController.createUser
    GET    /user/userid          AccountController.getUser
    

    使用 Sencha,我定义了一个 Store,它从特定 URL 检索 JSON 数据,该 URL 指向我的 Play!网址。

    在 Play 中的方法中,我从数据库中检索模型,然后返回 Sencha 将解析/读取的 JSON,如下所示:

    Query userQry = JPA.em().createQuery("select * from Account");
    List<Article> accounts= userQry .getResultList();
    renderJSON(accounts);
    

    干杯

    【讨论】:

    • 你好,好的,很好。但是,如果我也有一个移动应用程序怎么办。那么我是否也从该应用程序进行相同的函数调用?我已经使用 php 和 codeigniter 制作了网站,在这方面,我过去只是在处理后使用 $this->load->view('view') 加载视图。那么如何为网络应用程序设计这种东西。或者我不是将数据推送到视图,而是从视图中拉出来?
    • 您不应该使用 Play 中的视图,因为 EXT JS 是您的客户端框架。 Play 可以提供数据,我会为 Ext Js 和 Touch 使用相同的 url,但显然 Sencha Touch 会生成具有相同数据集的不同视图(如用于 Ext Js)。在大多数情况下,这应该是 JSON。因此,您应该制作一个通用的 index.html 来检测设备并根据设备加载正确的 .js 类。但是服务器(播放!)将是相同的。
    • 好的,知道了。非常感谢您的帮助。
    【解决方案2】:

    Sencha Touch 不适合桌面使用。您应该使用 Ext.JS 为桌面构建不同的应用程序。但是,如果您仍然想使用 Sencha Touch,这里将指导如何为不同的设备提供不同的视图。 http://docs.sencha.com/touch/2-0/#!/guide/profiles

    【讨论】:

    • 是的,我知道。我的问题是,如果我要满足 2 个应用程序,那么我的服务器端逻辑应该如何?当我的应用程序加载时,我是否应该将数据简单地返回为 Json 格式并让前端的东西进行表示 - 在这种情况下,ExtJs 用于用于移动设备的桌面和 sencha touch ?如果是这样,任何人都可以进行该 url 调用并正确获取数据?你能指导我如何进行吗?
    猜你喜欢
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 2015-04-27
    • 2011-12-03
    • 2011-03-24
    相关资源
    最近更新 更多