转换常规MVC站点以用于phonegap

时间:2012-10-30 20:51:42

标签: asp.net-mvc cordova jquery-mobile mobile-website

我有一个使用ASP.NET MVC和jQuery完成的网站。是否可以在没有太多返工的情况下修改我现有的项目,以便可以在phonegap中使用它来创建iphone / android应用程序?

5 个答案:

答案 0 :(得分:34)

这是一种方法:将您的逻辑移动到MVC WebAPI(或其他REST / Web服务)项目,然后将MVC站点转换为简单的html / javascript / css / image站点(移动站点)。然后重构您的Mobile站点以使用Ajax / JS查询您创建的WebAPI / Rest服务。一旦您以这种方式分离代码,您就可以使用Phonegap打包移动网站。我不确定你或你的项目会有多少工作。如果您在视图中使用了大量Html Helpers或Razor标记,则可能过于复杂。

我的建议的核心点是将您的移动UI图层和后端处理层分开,这样您就只能使用Phonegap打包Html5 / UI / Javascript图层,并将后端处理保留在您的Web服务器上。我不认为我需要解释这一点,但很明显,与Phonegap一起打包的应用程序不会在移动设备上提供MVC / .Net框架来呈现视图或执行控制器等。通过将UI迁移到简单的Html5和Javascript你可以使用Ajax / Jquery / Javascript调用你的后端,你可能想要在ASP.Net MVC WebAPI中托管。

编辑:猜猜我的建议有些混乱。我并不是说这是唯一可行的方法,但这是我熟悉的,因为我们的团队如何构建我们的桌面/网络+手机+手机+手机+ mvc4 + webapi + kendoui申请。这种模式对我们很有用,所以它也可以为你工作,或者至少给你一些关于如何构建解决方案的想法。祝你好运!

答案 1 :(得分:1)

我不确定但你需要一台服务器来编译ASP.NET吗?所以我认为这不适合你。我认为您需要使用AJAX来完成ASP.NET工作并将ASP.NET代码与HTML-jQuery分开,因为Phonegap需要一个index.html文件。您可以将ASP.NET文件存储在服务器

答案 2 :(得分:1)

您问题的答案实际上取决于您尝试转换的网站类型。您是否只是尝试围绕HTML设置原生框架并将您的应用程序引入应用程序商店?

如果它本质上或完全是信息性的,并且您只是使用MVC来构建宣传册类型的页面,那么它应该相当容易移动。这假设除了页面导航之外几乎没有逻辑。

如果您的网站反而依赖于后端服务器推送大量数据,则需要对其进行重新架构以在本地存储数据或通过清单预先获取数据。接下来,您需要实施一种策略,允许您将本地数据推送回服务器。

你的应用程序是否需要在断开状态下运行?

答案 3 :(得分:1)

如果您想要定位多个移动平台,那么Phonegap就是其中一个选项。可能是最广泛使用的。由于您使用的是jQuery,因此jQueryMobile将是学习曲线最少的路径。努力主要在前端UI上,取决于您想要设计多少个屏幕以提供子集或您在Web UI上已有的全部功能。您很可能需要使用jquery-mobile UI小部件documented here重新设计屏幕。这也是向客户展示带导航的初始屏幕设计的好方法。

答案 4 :(得分:1)

jquery mobile非常适合学习和设计,但在网络浏览器控制方面,电话差距很大。

你需要一个更轻量级的框架。

您可以使用inappbrowser控件来显示您的网站,以防它响应,但您没有设备相机和联系人等等......

看看:http://docs.phonegap.com/en/3.0.0/cordova_inappbrowser_inappbrowser.md.html#InAppBrowser