Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cordova 流星0.8.0,科尔多瓦3.4.0_Cordova_Meteor - Fatal编程技术网

Cordova 流星0.8.0,科尔多瓦3.4.0

Cordova 流星0.8.0,科尔多瓦3.4.0,cordova,meteor,Cordova,Meteor,我有一个Meteor 0.8项目,我正试图通过Cordova插件与Google和Apple推送通知集成,我已经为另一个项目编写了作品。我正在使用Meteor的早期版本中推荐的这个插件,但是在阅读了这篇文章之后,我不确定这个插件是否还有用 在我的meteor项目中,我有以下代码在启动时被调用以获取当前版本: Meteor.startup(function () { console.log("initiating cordova..."); var cordova = new cor

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

在我的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>

shellVersion='0.0.1';
流星=新流星雨(“流星”);//iFrame id“流星”
//meteor.initPush({senderID:'xxxxxxxxxxxxxx'});

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

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

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

我已经为iOS和PhoneGap3.3(3.4也可以正常工作)创建了一个drop-in样板。

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

<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>

//使用此项跟踪用户正在运行的版本
var\uuuuuuuuuuuu流星配置={
//你的制作流星应用程序
流星URL:“http://leaderboard.meteor.com/",
//您的本地dev meteor服务器url
//流星URL:“http://192.168.1.XX:3000",
//Cordova版本,在“Cordova更新”后碰撞此`
phonegapVersion:3.3,
PhoneGapPapVersion:0.1
};
//启动phonegap
phonegapapp.initialize();

然后您可以调用您的
PackageInfo.getVersion()
,如果仍然适用的话。然后,您可以执行类似于
device.platform
等操作。。。我还公开了一些Meteor软件包,以使ready/offline/etc cordova/phonegap事件响应,Meteor phonegap Oauth和其他一些。我认为您应该研究packmeteor,它似乎是最新的方式


我刚刚发布了一个新的包,用上面提到的方法修复了这些问题。安装和设置非常简单。查看自述文件。与Cordova 3.5配合使用


概述 Cordova Loader的目标是让Meteor与Cordova一起使用就像使用Meteor一样简单。编译器解释提供的Cordova项目目录,并将资产编译成小型的、特定于平台的JavaScript文件,这些文件放在Meteor/public目录中。当客户端加载时,它会自动拉入该设备的平台特定文件。Cordova API可以从Meteor中使用,就像从vanilla JS应用程序中使用一样。享受吧


与所述方法的比较
  • 延迟加载(cordova phonegap):很难管理所有cordova依赖项/未完成/过时
  • 劫持(流星骑士):初始加载缓慢/无法使用appcache/插件问题
  • iFrame(meteor cordova):iFrame通常是一种痛苦,包括本机应用程序的性能缓慢、易出错的滚动以及必须包装cordova
  • 科尔多瓦装载机:
    • 为您管理资产
    • 快速加载
    • 与appcache兼容
    • 与Cordova插件兼容
    • 科尔多瓦无需包装
    • 缩小特定于平台的捆绑包
    • 自动延迟加载客户端中特定于平台的捆绑包
    • 监视Cordova项目插件目录的更改

我看过这种方法,但《流星骑士》的作者甚至说,如果你使用的是PhoneGap插件,你应该使用Meteor Cordova:。我特别需要能够做推送通知。你和《流星骑士》合作成功了吗?我今天要检查一下,如果我成功了,我会回复。我的iPhone上显示了这个应用程序,但是我怎么能从我的meteor应用程序(特别是被注入Cordova应用程序的/www index.html的应用程序)调用Cordova插件呢?啊,所以你可以在你的meteor代码中使用香草PhoneGap API。不需要插件。例如,如果您有device phonegap插件,您只需使用if
(device.platform==“iOS”)
即可。唯一需要注意的是,必须触发设备就绪事件。所以在启动时运行的代码可以在这之前运行,所以我要么在meteor.startup函数中的文档中添加一个侦听器。Hmmm…得到了“设备未定义”错误,但我认为这只是因为没有正确重新加载它的函数。谢谢你的提示!哦,对不起,忘了提一下,只有在安装设备插件时,设备全局才可用: