23t*_*tux 5 git plugins android ios cordova
我有一个适用于iOS的cordova 3.3.1-0.1.2测试项目,我使用以下插件(cordova plugin ls):
[ 'com.phonegap.plugins.PushPlugin',
'org.apache.cordova.console',
'org.apache.cordova.device',
'org.apache.cordova.splashscreen' ]
Run Code Online (Sandbox Code Playgroud)
我添加了这样的插件cordova plugin add org.apache.cordova.device.在我的git repo中,我看到它将一堆文件添加到plugins/org.apache.cordova.device目录中,在我的iOS插件目录中创建一个CDVDevice.h和一个CDVDevice.m,更新ios.json,更新*.xcodeproj文件并将插件添加到我的config.xml内部platforms/ios/test-app/config.xml:
<feature name="Device">
<param name="ios-package" value="CDVDevice" />
</feature>
Run Code Online (Sandbox Code Playgroud)
但是当我尝试访问JS中的deviceor window.device属性时,它告诉我,这device是未定义的.奇怪的是,pushPlugin存在:
document.addEventListener("deviceready", function () {
console.log(device);
console.log(window.device);
console.log(window.plugins.pushNotification);
});
Run Code Online (Sandbox Code Playgroud)
该window.plugins对象仅将pushNotification插件列为属性.这很奇怪,因为它们都已安装完毕,在安装过程中,cordova说,一切都很好.
我有点困惑,关于过时的,混合的电话差距文档,但如果其中一个可行,那就没关系.我也看到了一个插件定义,config.xml就像这样
<gap:plugin name="org.apache.cordova.device" />
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下,有什么区别?feature与cordova 3.3一起工作的方式是什么?当我尝试使用该<gap:plugin...格式时,我的应用程序在启动时崩溃.
所以,请帮助我解决这个问题,并清除我的想法;)
不幸的是,没有一个答案奏效.幸运的是,我在这个邮件列表中找到了解决方案:
他们说,这是cordova 3.3.1中的一个错误.在此版本中,插件将被复制到.staging不同平台的目录中.
因此,使用npm降级到cordova 3.3.0现在可以使用(在Mac OS X上):
sudo npm remove -g cordova
sudo npm view cordova versions
sudo npm install -g cordova@3.3.0-rc.1
Run Code Online (Sandbox Code Playgroud)
如果可以从phonegap安装cordova,还要检查一下.如果你只使用cordova,而不使用phonegap功能(如远程构建),你可以安全地删除phonegap包
sudo npm remove -g phonegap
Run Code Online (Sandbox Code Playgroud)
更新
当前版本3.4.0工作正常,并没有这个问题.
| 归档时间: |
|
| 查看次数: |
8692 次 |
| 最近记录: |