【问题标题】:Wrap nodejs application with Phonegap用 Phonegap 包装 nodejs 应用程序
【发布时间】:2015-01-01 00:08:13
【问题描述】:

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

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

谢谢!

【问题讨论】:

  • 你必须为 iPhone、Android、Windows Phone 搜索 node.js 运行时......恐怕你必须找到没有 node.js 的策略。我不知道你的整个堆栈,但是许多 JS 库可以在带有 browserify 的浏览器中运行。
  • 我不明白 browserify 如何帮助我?我的问题仅在于灰尘 js 模板,我的 nodejs 服务器构建并为我服务。我的客户端代码在我可以在 phonegap 中使用的常规 js 文件中。也许我需要一个虚拟的 index.html 文件,他所做的只是从服务器请求我的主页?你觉得呢?
  • 请准确说明哪些软件在哪里运行。服务器端是什么意思?它是互联网上的服务器吗?您可以使用手机上的浏览器访问您的服务器吗?这可行吗?
  • 我正在使用 krakenjs (它使用 express) 运行 nodejs 服务器。我正在使用dustjs进行模板。 nodejs 服务器为我提供页面,它用数据填充模板并将它们返回给客户端。服务器在互联网上,我可以从任何浏览器(PC、平板电脑和手机)访问我的网站。我想做的是把它包装成一个移动原生应用程序,这意味着你不需要进入浏览器并导航到网站,而是一个可以这样做的原生应用程序。感谢您的帮助!
  • 你好,我也有类似的情况,只是我在本地运行express server...我不能走远程URL路由,那么如何让dustjs在PhoneGap中工作?

标签: node.js cordova kraken.js


【解决方案1】:

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

这是通过您的 www/config.xml 文件中的<content> 标签配置的,如下所示:

<content src="index.html" />

对于本地文件或

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

用于远程 URL。

如果您的应用程序可供非 Phonegap 用户通过网络浏览器使用,并且 Phonegap 用户体验与常规浏览器体验没有区别,则将 Phonegap 直接指向您的 kraken 应用程序的 URL 可能更容易。您也可以选择为 Phonegap 实现不同的路由。

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

别忘了在你的Phonegap配置中指定&lt;access origin&gt;参数,例如:

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

直接指向您的服务器的缺点是您可能必须在所有页面上加载 cordova.js(可能使用条件加载技巧)。(请参阅grundyoso 在下面发表评论以获得更好的解决方案)

【讨论】:

  • 我能够有效地遵循这个技巧,但是我会指出我不需要在我的所有服务器端页面中加载 cordova.js。我只是将 cordova.js 文件添加到了我的 Phonegap 项目文件系统中 Platforms 下的 ios 包中。如此处所示:cl.ly/image/0L1J3J181z22
  • 我刚刚编辑了答案以指向您的解决方案。尚未对其进行测试,但我同意最好不要弄乱原始网络应用程序。
  • 我尝试了这个解决方案,但似乎无法通过 Phonegap Build 让它工作,这是我的尝试 gist.github.com/arvi/b6689b46142affb6689ab1ea47e58035 你使用的是什么构建方法? Cordova、Phonegap CLI 还是 Phonegap Build?
  • @Woppi 你能设置一个我可以克隆的存储库来重现错误吗?我会试着调查一下...
  • @dimdm 哇,谢谢你的好意。我能够使用本地使其工作,我认为在本地进行跟踪要容易得多,并且考虑到我是这方面的初学者。这是我为遇到相同情况的任何人制作的 nodejs + sockets + phonegap 构建的实验。 bitbucket.org/arviio/tuts-socket-io-chat-app :)
猜你喜欢
  • 2013-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多