Cordova多个Html文件

时间:2015-09-29 20:35:25

标签: cordova

在我的Cordova应用中,index.html在我收到main.html事件时重定向到onDeviceReady。但我无法在main.html中使用任何插件。 我需要在Cordova中启用main.html工作吗?

4 个答案:

答案 0 :(得分:2)

@ lars1595,
每次加载新页面时,都会在App进程中重新开始。这意味着,如果您加载新页面,则必须再次等待deviceready事件。

简而言之,您在index.html中所做的一切必须在main.html中重复。这就是人们说你应该使用SPA(单页应用程序)的原因。

然而,他们给你的理由很差。简而言之,他们是懒惰的思想家 - 而不是懒惰的程序员。多页应用程序是有效的,但您必须仔细考虑。如果您对此有疑问,请询问。

deviceready上,请阅读#4部分。在代码中,没有收听'deviceread'事件。
Top Mistakes by Developers new to Cordova/Phonegap

杰西

答案 1 :(得分:1)

避免使用多个html文件,通过在其他HTML文件或模板片段文件中包含其他内容,将Cordova应用程序“保持在同一页面上”,并通过Ajax / Javascript将这些内容加载到index.html中的div中,即“你可能想考虑一个模板引擎,比如Handlebars,取决于你用来构建应用程序的JavaScript框架,其他选项可能更有吸引力.Github上的示例项目,我有使用这种方法can be found here

答案 2 :(得分:1)

在阅读为制作单页应用而提出的建议时,您应该注意一些事项:您可能仍然需要加载另一页。

这是因为我最近遇到了一个cordova超时错误,您收到超时错误消息并且应用程序崩溃了。众所周知的解决方法是使应用程序的启动页面与实际的应用程序页面不同。因此,举例来说,您可能会在app.html上运行整个应用,但首先您需要让cordova从loading.html开始,然后重定向到app.html。

要回答您的问题,您需要将onDeviceReady事件移动或添加到其他html文件中。拥有单页应用程序肯定有助于绕过这个问题(如果这是适用于您的应用程序类型),但无论哪种方式,您都可能需要添加该额外页面修复超时问题,具体取决于您的应用逻辑的功能。它可能不会发生在你身上,但我认为你应该意识到这一点。 (顺便说一句,loading.html页面不需要任何onDeviceReady事件;它实际上可以只是正文中的单行脚本重定向到您的应用页面。)

答案 3 :(得分:0)

这可能会帮助仍然面临此问题的人。 将此插件添加到您的应用https://github.com/TruckMovers/cordova-plugin-remote-injection

这会将cordova和其他插件注入任何远程HTML

此外,您可以将onDeviceReady放在一个单独的JS文件中,并将其包含在内, 在config.xml中