Cordova / PhoneGap仅支持单页移动应用程序

时间:2014-01-01 15:36:14

标签: cordova

阅读完教程后,我仍感到困惑。 我是否需要包含cordova.js并初始化app.initialize();在每个页面上?或者只要加载index.html,我就不需要在任何其他页面上包含cordova.js并初始化它?

3 个答案:

答案 0 :(得分:4)

这取决于!如果您将Cordova与jQM或任何其他类似Ajax的框架配合使用,则无需在每个页面上加载cordova.js。只需要在index.html中加载它,即使你在另一个html中更改了页面,它也会保持可用。

原因是在jQM中,事物以ajax方式加载,并且它们保留在DOM中,这就是为什么cordova库可以通过DOM生活获得。如果在每个页面上包含cordova.js,您将有多个声明,这可能会导致问题。请注意这一点。

我一直在使用单页应用程序的应用程序中工作,每个页面都在一个独立的HTML上,这对于我们的可持续性目的是有益的,它允许不同的人在其他页面上工作而不会仅仅在一个文件中混乱。我们只是在index.html中加载cordova和其他常用库,一切正常。对于需要特殊代码的特定页面,我为每个页面加载了所需的脚本,因此当我更改页面时,库代码不会保留在DOM中,以保持DOM尽可能轻和干净。

如果您想在每个页面上包含cordova,请注意,如果尚未加载库,请先检查。我建议在所有页面中检查deviceready事件,以保证安全。

单个或多个应用程序开发决策取决于您的需求和情况。

答案 1 :(得分:3)

在移动设备中,每次加载所有内容都很疯狂,特别是如果没有wifi连接。

看看这个,是一个非常简单的方法来制作一个只有一个html的模块化应用程序: https://github.com/charnekin/api

答案 2 :(得分:2)

是。您必须在每页上包含cordova.js。 如果您不需要在该页面上访问特定于设备的功能,则无需在每个页面上订阅Cordova相关事件,并且可以使用包含JS和CSS组合的常规HTML页面。虽然这是可能的,但建议不要在Cordova应用程序中执行此操作,因为每次您将导航到新页面时,用户都会注意到这一点。 Cordova的“最佳实践”是使用单页应用程序,不要在不同的屏幕上使用多个页面。

您可以在链接中查看文章 http://floatlearning.com/2011/03/developing-better-phonegap-apps/了解开始使用Cordova时需要考虑的其他一些好建议