【问题标题】:Reusing views from a mobile site in a mobile app在移动应用程序中重用来自移动站点的视图
【发布时间】:2014-03-20 16:44:12
【问题描述】:

我们构建了一个 ASP.NET MVC 网站,该网站针对使用响应式设计的移动设备和平板电脑设备进行了优化。

我们希望将这些视图重用/打包到 Phonegap 应用程序中,以创建 iOS/Android/Windows 应用程序。

我们最初的想法是在 Phonegap 项目中拥有骨架视图,并从 ASP.NET MVC 网站远程提供内容(包括标记)。但是,我的理解是,Apple 可能不会批准具有这种架构的应用程序。

非常感谢您对如何设计 Phonegap 应用程序的任何想法。

【问题讨论】:

    标签: asp.net-mvc mobile cordova


    【解决方案1】:

    正如您所暗示的,Apple 通常不鼓励网站通过薄壳伪装成本机应用程序。请参阅此 SO 进行一些讨论:

    Does Apple reject "mobile web shell" applications?

    对于我正在开发的当前应用程序,我通过 Apache 提供服务并在 Chrome 中进行测试来完成我的所有开发工作。我通过使用 Cordova 构建过程包装同一组 html/cs/js 文件并推送到设备来在设备上进行测试。对您不起作用的唯一原因是您必须拥有一堆服务器端逻辑和视图的条件渲染。

    所以无论你是:

    1) 去尝试提交一个简单的原生包装网站,很可能会被批准没问题

    2) 我的建议是对您的视图设计/交互进行一些修改,例如包括原生移动应用风格的导航栏等,以使体验更类似于应用而不是网站。然后使用您的新客户端/应用程序视图,将服务器端控制器/模型交互替换为 Rest/JSON api。

    例如,目前你有这样的东西:

    //Server side 
    class mainController
    {
      void fooAction()
      {
        string bar = getModelThatIncludesBar().bar;
        ...
        renderView($bar, 'fooView');
      }
    }
    

    相反,更像这样:

    // Client side, poor mans MVC
    bar = useAjaxToGetModelThatIncludesBar().bar;  // pretend this is synchronous :)
    ...
    fooViewElementThatNeedsBarData.innerHtml = bar
    

    编辑:我在这里大大简化了一些事情,试图将其提炼成我看到的两个基本选择。如果您想聊聊,请给我发消息或其他任何内容。

    【讨论】:

      【解决方案2】:

      我的建议是您需要将客户端和服务器端语言分开。然后将您的服务器端语言转换为 SOAP 或 REST 的 Web 服务,以便您的客户端可以从您的服务器发送和接收数据。 Phonegap is allowed client side language only.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-03
        • 1970-01-01
        • 2012-08-19
        • 2022-01-21
        相关资源
        最近更新 更多