asp.net-mvc-3 - asp.net mvc、jquery mobile、phonegap 架构最佳实践

标签 asp.net-mvc-3 architecture jquery-mobile cordova mobile-application

我正在开发一个使用 ASP.Net MVC 生成 HTML 5 页面的移动应用程序。 HTML 5 页面将使用 jQueryMobile 的 loadPage 调用 ASP.Net MVC 将页面加载到 DOM。然后它将使用 jQueryMobiles 的 changePage 根据用户与应用程序的交互使页面在 DOM 中处于事件状态。对 MVC 应用程序的调用将调用不同的 Web 服务来检索源数据以构建 HTML。

我们计划将 PhoneGap 与应用程序一起使用,以便我们可以将完成的应用程序提交给 Apple 和 Android 商店。我的应用程序不需要与设备的 native 功能(联系人、地理定位等)交互。既然我们不需要与实际设备的操作系统交互(除了对 MVC 应用程序进行 jQuery ajax 调用),那么真的需要 PhoneGap 吗?我上面描述的方法是使 Web 应用程序在移动设备上可行的合适方法吗?

由于我的应用程序是 asp.net mvc 并且将托管在我的服务器上,那么什么会发送到 Android 和 Apple 商店?这是 PhoneGap 发挥作用的地方吗? PhoneGap 是否创建了某种提交给 Android 和 Apple 商店的可执行文件?然后这个可执行文件被下载到客户端设备上?我假设可执行文件将通过 URL 调用 MVC 站点以检索应用程序 HTML?

我正确看待这个吗?谢谢你的帮助。

最佳答案

Phonegap(或一些替代品)不是必需的,但对于从 HTML/JS/CSS 源创建应用程序包非常有帮助。 Phonegap 不会创建可执行文件(您的 IDE 会这样做),而是一个 Java 到 JavaScript 功能的框架(使得从您的 JavaScript 运行 Java 代码成为可能)。

Phonegap 基本上将您的 HTML/JS/CSS 站点包装在 webview 中以便您的代码可以被设备的浏览器解释(有时以比正常运行浏览器更沙盒的方式,例如 iOS-5 之前的 webview 实例没有获得 Nitro JS 引擎,因此它们的运行速度比网站慢在移动 Safari 浏览器中)。

您可以创建自己的 webview如果您的网站非常简单,它不会使用任何其他 Phonegap 功能,但因为它已经融入 Phonegap 并且设备将不必下载 Phonegap。您不妨使用Phonegap。

Phonegap Build ( https://build.phonegap.com/ ) 是一个程序,您可以购买该程序来构建您的应用程序包并将其提交到 Apple/Google/RIM/Windows 应用程序商店。通常,您只需使用自己的 IDE 来执行此操作。例如,要创建 iOS 应用程序,您必须使用新的 Apple 计算机(您必须拥有最新的操作系统版本才能构建最新版本的 iOS 软件包)。 iOS 应用程序包是在 XCode 中创建的,Eclipse IDE 是创建 Android 应用程序包的一个非常常见的环境:http://developer.android.com/sdk/eclipse-adt.html

我注意到你说你正在使用 $.mobile.loadPage()将页面加载到 DOM 和 $.mobile.changePage()将用户导航到这些页面。如果您只是使用 $.mobile.changePage()然后它会自动抓取 loadPage() 的页面.如果您正在使用 loadPage()预加载内容然后检查 jQuery Mobile 的预取能力:http://jquerymobile.com/demos/1.1.0-rc.1/docs/pages/page-cache.html

2014 年更新

我最近使用 Cordova 3.5 构建了一些应用程序,构建过程非常简单。包构建过程现在通过系统的控制台进行管理,从安装插件到重建应用程序包的一切都变得更加容易。

关于asp.net-mvc-3 - asp.net mvc、jquery mobile、phonegap 架构最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9931331/

相关文章:

c# - MVC3 应用程序中的只读用户权限,更改最少

javascript - 月经追踪日历

javascript - Jquery Mobile - 默认情况下启用 Ajax,但我在 POST 上刷新了整页

language-agnostic - 我的信誉系统安全吗?

javascript - 清空 Javascript 对象 (Jquery Mobile)

asp.net-mvc-3 - 并发请求时的 ASP.NET(或 IIS?)行为

javascript - js中的Url.RouteUrl

asp.net-mvc-3 - 使用 MVC HTML 助手(如 ActionLink、BeginForm、TextBox 等)代替原生 HTML 标签有什么好处?

architecture - Multi-Tenancy 或多实例?

database - 什么时候应该使用对象数据库?