Node.js 用Phonegap包装nodejs应用程序

Node.js 用Phonegap包装nodejs应用程序,node.js,cordova,kraken.js,Node.js,Cordova,Kraken.js,我想用phonegap包装我的nodejs应用程序。 我使用krakenjs构建了我的nodejs应用程序,我真的不知道哪些文件应该进入phonegap Nodejs是服务器端,但它提供所有静态文件。 在krakenjs项目下的公共文件夹中,我有所有静态文件(css、imgs、js..) 但是所有的html都是服务器提供的JS模板文件。 我有点迷路了。任何帮助都将不胜感激 谢谢 使用Phonegap,您可以选择从应用程序本地文件(如www/index.html)或远程URL启动应用程序 这是通过

我想用phonegap包装我的nodejs应用程序。 我使用krakenjs构建了我的nodejs应用程序,我真的不知道哪些文件应该进入phonegap

Nodejs是服务器端,但它提供所有静态文件。 在krakenjs项目下的公共文件夹中,我有所有静态文件(css、imgs、js..) 但是所有的html都是服务器提供的JS模板文件。 我有点迷路了。任何帮助都将不胜感激


谢谢

使用Phonegap,您可以选择从应用程序本地文件(如www/index.html)或远程URL启动应用程序

这是通过www/config.xml文件中的
标记配置的,如下所示:

<content src="index.html" />

对于本地文件或

<content src="https://mydomain.com/myroute" />

用于远程URL

如果非Phonegap用户可以通过web浏览器使用您的应用程序,并且Phonegap用户体验与普通浏览器用户体验没有区别,那么将Phonegap直接指向kraken应用程序的URL可能会更容易。您也可以选择为Phonegap实施不同的路由

原因是,如果在Phonegap应用程序推送到应用商店后需要进行更改,则只需更新服务器模板。更改应用程序的本地文件将需要重建和重新部署Phonegap

不要忘记在Phonegap配置中指定
参数,例如:

<access origin="https://mydomain.com" subdomains="true" />


直接指向服务器的缺点是,您可能需要在所有页面上加载cordova.js(可能使用条件加载技巧)。(有关更好的解决方案,请参见下面Grundyso的评论)

您必须搜索适用于iPhone、Android、Windows Phone等的node.js运行时。。。恐怕您必须找到一个没有node.js的策略。我不知道你的整个堆栈,但是很多JS库可以在浏览器中运行,我不知道browserify如何帮助我?我的问题只在于dust js模板,我的nodejs服务器构建并为我提供这些模板。我的客户端代码在常规js文件中,我可以在phonegap中使用。也许我需要一个虚拟index.html文件,他所做的只是从服务器请求我的主页?你认为呢?请确切地解释一下哪些软件在哪里运行。你说服务器端是什么意思?它是因特网上的服务器吗?你能用手机上的浏览器访问你的服务器吗?我正在用krakenjs运行一个nodejs服务器(它使用express)。我正在使用dustjs作为模板。nodejs服务器为我提供页面,它用数据填充模板并将它们返回给客户端。服务器位于internet上,我可以从任何浏览器(PC、平板电脑和手机)访问我的网站。我想做的是将它包装成一个移动原生应用程序,这意味着你不需要进入浏览器并导航到网站,相反,它将是一个原生应用程序。谢谢你的帮助!嘿,我有一个类似的情况,除了我在本地运行express服务器。。。我无法使用远程URL路由,那么如何让dustjs在PhoneGap中工作?我能够有效地遵循这一技巧,但是我要指出,我不需要在所有服务器端页面中加载cordova.js。我只是简单地将cordova.js文件添加到平台下Phonegap项目文件系统中的ios包中。如图所示:我刚刚编辑了答案以指向您的解决方案。还没有测试它,但我同意最好不要弄乱原始的web应用程序。我尝试了这个解决方案,但似乎无法通过Phonegap构建使其工作,以下是我的尝试您使用的构建方法是什么?Cordova、Phonegap CLI或Phonegap Build?@Woppi您能设置一个我可以克隆的存储库来重现错误吗?我会尽力调查的…@dimdm哇,谢谢你的好意。我能够使用本地实现它,我认为本地跟踪要容易得多,考虑到我是这方面的初学者。这是我做的nodejs+sockets+phonegap构建的实验,适用于那些会发现自己处于相同情况的人。:)