Cordova 流星0.8.0,科尔多瓦3.4.0
我有一个Meteor 0.8项目,我正试图通过Cordova插件与Google和Apple推送通知集成,我已经为另一个项目编写了作品。我正在使用Meteor的早期版本中推荐的这个插件,但是在阅读了这篇文章之后,我不确定这个插件是否还有用 在我的meteor项目中,我有以下代码在启动时被调用以获取当前版本: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.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项目插件目录的更改
(device.platform==“iOS”)
即可。唯一需要注意的是,必须触发设备就绪事件。所以在启动时运行的代码可以在这之前运行,所以我要么在meteor.startup函数中的文档中添加一个侦听器。Hmmm…得到了“设备未定义”错误,但我认为这只是因为没有正确重新加载它的函数。谢谢你的提示!哦,对不起,忘了提一下,只有在安装设备插件时,设备全局才可用: