【问题标题】:Can Meteor be used with PhoneGap?Meteor 可以与 PhoneGap 一起使用吗?
【发布时间】:2012-05-06 13:18:15
【问题描述】:

可以将 Meteor 模板打包并部署为 PhoneGap 应用程序吗?

【问题讨论】:

  • 请参阅@Mitja Bezenšek 的最新回答,了解最新版本的 Meteor (0.9.3) 支持的最新方法。

标签: cordova meteor


【解决方案1】:

我在某种程度上做了粗略的处理,这里是我遵循的过程:

  • 以待办事项为例
  • 使用meteor bundle ../todos.tgz 创建一个待办事项包
  • 解压包 在编辑器中打开解压包
  • 打开static_cacheable/文件夹下的.js文件并格式化,替换ajax调用 来自带有实际主机请求的“file://”请求。
  • 我在第 1766 行执行此操作,它使用
  • 创建了 ajax 处理程序

    u.protoype._start = function(a, d, e, f){
        d = d.replace("file://localhost","http://localhost:3000");
        ...
    }

之后在浏览器中打开 app.html 文件并确保服务器已经在运行。这样您就可以让大部分应用程序正常工作。

但是,这不是您希望在实际应用程序中使用它的方式,但是通过更多更改,可以在 Phonegap 中使用客户端,而服务器在其他地方运行。

编辑

Meteor 有一个方法 connect 连接到不同的流星应用程序,它可能会解决上述 url 替换调用,尽管我还没有尝试过。

【讨论】:

  • 我的 static_cacheable/*.js 文件中没有看到任何“file://”字符串。我尝试编辑 app.html 中的 css 和脚本行以使用完全限定的服务器 URL('myapp.meteor.com/xxxx.js' 而不是 '/.xxxx.js'),但这只会导致 Phone Gap 应用程序出现白屏。 Phone Gap在本地服务app.html,如何修改js指向我的服务器?
  • 你不会直接找到它,它是_start()方法的参数。检查创建 XHR 对象的 _start() 方法定义,并将 url 参数替换为您的目标域。
【解决方案2】:

嗯,我想最好的起点是弄清楚你想要/需要走多远。

你想要

  • 一个连接到某处服务器的 Meteor.js PhoneGap 应用程序?然后 你可能想在 PhoneGap 项目中使用 Meteor 类 并使用 Meteor.connect(url) 连接到您的服务器。

  • 离线应用程序数据持久性 - 这会变得很艰难......这不是 Meteor 旨在做的事情,虽然肯定有办法
    去实现它。我记得来自骨干、脊椎和
    的讨论 其他客户端 JS 框架。使用本地存储很容易,但是 当您想要在本地之间同步数据时,真正的努力就开始了 和服务器。

这应该有助于进入重点......

【讨论】:

    【解决方案3】:

    是的,这是可能的,但不能通过将流星应用程序打包到手机上。您必须将 phonegap 指向您的流星服务器(您仍然可以使用 API 访问设备上的功能)。以下是说明:

    就是这样。编译并运行应用程序。

    节省时间:

    • 您可以通过将 www/ 目录内容复制到您的流星服务器根目录来开始设置您的流星目录。确保复制 client/ 目录下的 javascript 文件,以便它们在主要的流星 js 文件之前加载。
    • 在你的meteor js主文件中运行app.initialize(window),如果没有传入window参数,应用会崩溃。
    • 不要尝试在 Xcode 中的 www/ 目录下设置流星服务器。您将无法部署到设备,因为 .meteor 子目录包含指向您的节点模块的符号链接。

    【讨论】:

    • 谢谢!但我没有更改 ViewController。我只是将config.xml 更改为<content src="http://127.0.0.1:3000/" />,因为这是在 ViewController 中默认设置为 appURL 的属性。
    【解决方案4】:

    以下是使用 PhoneGap 在移动设备中移植 Meteor 应用程序的简单步骤 Meteor on Mobile Device using PhoneGap

    只需将您的 stream_clientbf90.js 更改为移植到您的域即可。

    【讨论】:

    • 欢迎来到 Stack Overflow!感谢您发布您的答案!请务必仔细阅读FAQ on Self-Promotion。另请注意,每次链接到自己的网站/产品时,都要求发布免责声明。
    • 这篇博文似乎已经过时,因为 Meteor 正在迅速变化。帖子中提到的文件在我的项目中不存在
    【解决方案5】:

    这里是 phonegap + meteorjs + oauth2 的现场演示。
    我在 google play 上用流星创建了这个应用程序。
    https://play.google.com/store/apps/details?id=com.youiest.tapmatrix&hl=en
    这是一个私人作品,所以不能透露源代码。
    请随时提出问题。
    我尝试使用多种方法来使用流星 + phonegap。
    谢谢。

    【讨论】:

    • 这个也有流星服务器的推送通知。
    • 您是如何实现推送通知的?您看过任何示例或文档吗?
    • 有流星推送通知在 android 中很容易在 ios 中可用。
    【解决方案6】:

    还有这个包:https://github.com/awatson1978/cordova-phonegap

    我没有亲自尝试过,但这似乎是正确的方法。

    更新:在 8 月的 devshop 中,phonegap support has been announced from the core team 有很酷的演示和东西。

    玩弄它:

    meteor update --release CORDOVA-PREVIEW@3
    

    开始使用:https://meteor.hackpad.com/Getting-Started-With-Cordova-Z5n6zkVB1xq

    【讨论】:

      【解决方案7】:

      【讨论】:

      猜你喜欢
      • 2014-12-25
      • 2015-10-30
      • 1970-01-01
      • 2012-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-16
      相关资源
      最近更新 更多