在同一个应用程序上播放1.2.4移动和PC设计

时间:2012-05-06 12:21:29

标签: model-view-controller playframework

我是Play世界的新开发者!对于一个项目,我需要一个移动和桌面版本。但我不知道怎么做!!

  • 创建2个应用程序,共享模型..;
  • 创建移动控制器以将桌面视图与移动视图分开

我不知道如何正确地做到这一点。我知道响应式设计,但我不能在这个项目上使用它。

由于

PS:抱歉我的英文

2 个答案:

答案 0 :(得分:0)

根据用例,我会看一下像Twitter Bootstrap这样的框架。使用twitter引导程序,您可以为桌面和移动设备使用一组视图模板。还有一个名为Kickstrap的框架和其他一些框架。

但另一方面,如果你想开发某种“后端”或“管理”应用程序(你仍然可以使用twitter引导程序,但你可能会看看像Sencha(EXT JS和Touch)这样的框架或者Kendo UI。

你选择什么,Play将使你能够开发服务器端(RESTful),因此前端的选择可以及时改变,但你的应用程序架构会很好: - )

答案 1 :(得分:0)

任何一个都没关系。因为它们本质上是相同的,2组路由/控制器/视图加上1组域模型。

如果您正在使用my play clone,那么您可以将其简化为1组域模型+ 1组路由/控制器+ 2组视图,因为您可以执行以下操作:

public class Application extends Controller {
   ...
   @OnApplicationStart
   public static class ViewRouter extends Job {
        Controller.registerTemplateNameResolver(new ITemplateNameResolver(){
            @Override
            public String resolveTemplateName(String templateName) {
                return UserAgent.isMobile() ? "mobile/" + templateName : templateName;
            }
        });
   }
}

因此,您只需将移动视图置于app/views/mobile下,其他所有视频仍保留在app/views中,模板将根据请求的用户代理动态加载,如果它来自移动设备,则{ <1}}版本加载,否则将加载普通视图。