流星0.8.0与Cordova 3.4.0

时间:2014-04-14 23:09:50

标签: cordova meteor

我有一个Meteor 0.8项目,我试图通过Cordova插件与Google和Apple推送通知集成我已经为不同的项目编写了作品。我正在使用这个plugin,这是在以前的Meteor版本中推荐的,但在阅读了这个post后,我不确定这个插件是否有用。

在我的meteor项目中,我有以下代码在启动时调用以获取当前版本:

Meteor.startup(function () {
    console.log("initiating cordova...");
    var cordova = new cordova();

    var version = {
        appVersion: function (args, successCallback, errorCallback) {
            if (is.iOS) {
                cordova.exec(successCallback, errorCallback, "PackageInfo", "getVersion", args);

            } else if (is.Android) {
                cordova.exec(successCallback, errorCallback, "PackageInfo", "getVersion", args);
            }
        }
    };

    alert("Current Version:  " + version.appVersion());

});

在我的Cordova项目中,我有以下代码到iframe Meteor:

<iframe id="meteor" src="http://meteor-cord.meteor.com">
</iframe>
<script type="text/javascript">

    shellVersion = '0.0.1';

    meteor = new MeteorCordova('meteor'); // The iFrame id "meteor"

    // meteor.initPush({ senderID: 'xxxxxxxxxxxxxxxx' });

</script>

有关如何使其工作的任何想法,以便我可以将Cordova插件与最新版本的Meteor一起使用?

3 个答案:

答案 0 :(得分:2)

我之前尝试过MeteorCordova但是在iOS和键盘/文本输入事件方面遇到了很多问题。我最终切换到MeteorRider,解决了很多问题。它基本上从服务器获取html并将其注入index.html并重新触发Meteor事件。我们在Android和iOS上使用它。

然后,您可以像使用本地index.html一样使用PhoneGap插件API。

我已经为iOS和PhoneGap 3.3创建了一个支持模板(3.4也应该可以正常工作)。 https://github.com/AdamBrodzinski/meteor-cordova-shell

您也可以复制粘贴代表中的www文件夹。并将index.html的底部更改为指向您的流星服务器:

<script type="text/javascript">
  // use this to track what version your user's are running
  var __MeteorRiderConfig__ = {
    // Your production meteor app
    meteorUrl:  "http://leaderboard.meteor.com/",

    // Your local dev meteor server url                        
    //meteorUrl:  "http://192.168.1.XX:3000",

    // Cordova version, bump this after a `cordova update <platform>`
    phonegapVersion: 3.3,

    phonegapAppVersion: 0.1
  };

  // Start up the phonegap
  phonegapapp.initialize();
</script>

如果仍然适用,您可以致电PackageInfo.getVersion()。然后你可以做device.platform之类的事情......我也开放了一些Meteor软件包来使ready / offline / etc cordova / phonegap事件被动,Meteor Phonegap Oauth和其他几个。

答案 1 :(得分:0)

我认为你应该看看packmeteor,它似乎是最新的方式。

Pack Meteor on GitHub

答案 2 :(得分:0)

我刚刚发布了一个新的软件包,修复了上述方法的问题。安装和设置非常简单。检查自述文件。适用于Cordova 3.5。


概述

Cordova Loader的目标是使用Meteor和Cordova一样简单地使用Meteor本身。编译器解释提供的Cordova项目目录,并将资产编译为放置在Meteor / public目录中的缩小的,特定于平台的JavaScript文件。当客户端加载时,它会自动为该设备提取特定于平台的文件。可以从Meteor使用Cordova API,就像使用vanilla JS应用程序一样。享受!

Cordova Loader


与描述的方法here

进行比较
  • 延迟加载(cordova-phonegap):难以管理所有Cordova依赖项/未完成/过时
  • 劫持(流星骑士):初始加载缓慢/无法使用appcache /插件问题。
  • iFrame(meteor-cordova):iFrames通常很痛苦,包括本机应用程序性能低下,毛刺滚动,不得不包裹Cordova
  • Cordova Loader:
    • 为您管理资产
    • 快速加载
    • 与appcache兼容
    • 与Cordova插件兼容
    • 不需要Cordova周围的包装
    • 缩小特定于平台的捆绑包
    • 在客户端
    • 中自动延迟加载特定于平台的捆绑包
    • 观看Cordova项目插件目录以进行更改