android - Cordova 3.3.1-0.1.2 (Phonegap) 插件不工作

标签 android ios git plugins 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' ]

我已经添加了这样的插件 cordova plugin add org.apache.cordova.device .在我的 git repo 中,我看到它向 plugins/org.apache.cordova.device 添加了一堆文件目录,创建一个 CDVDevice.h和一个 CDVDevice.m在我的 iOS 插件目录中,更新 ios.json , 更新 *.xcodeproj文件并将插件添加到我的 config.xml里面platforms/ios/test-app/config.xml :

<feature name="Device">
    <param name="ios-package" value="CDVDevice" />
</feature>

但是当我尝试访问 devicewindow.device JS 中的属性,它告诉我,device未定义。奇怪的是,存在 pushPlugin:

document.addEventListener("deviceready", function () {
   console.log(device);
   console.log(window.device);
   console.log(window.plugins.pushNotification);
});

window.plugins对象仅列出 pushNotification插件作为属性。很奇怪,因为都安装好了,安装的时候,cordova说,一切正常。

对于过时的和混合了 phonegap 的文档,我有点困惑,但如果其中一个可以工作,那也没关系。我还看到了一个插件定义,在 config.xml 中像这样

<gap:plugin name="org.apache.cordova.device" />

谁能解释一下,有什么区别?我使用 cordova 3.3 的方式(使用 feature )是否过时了?当我尝试使用 <gap:plugin...格式,我的应用程序在启动时崩溃。

所以,请帮我解决这个问题,让我头脑清醒 ;)

最佳答案

不幸的是,没有一个答案有效。幸运的是,我在这个邮件列表中找到了解决方案:

http://mail-archives.apache.org/mod_mbox/cordova-dev/201312.mbox/%3CCABiQX1Vat5XvmKkWt=+viL9oXWnOiAz5ee95h8oJp0j4MU9pJQ@mail.gmail.com%3E

他们说,这是 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

还要检查是否也可以从 phonegap 安装 cordova。如果您使用cordova,而不使用phonegap 功能(如远程构建),您可以安全地删除phonegap 包

sudo npm remove -g phonegap

更新

目前3.4.0版本运行良好,没有这个问题。

关于android - Cordova 3.3.1-0.1.2 (Phonegap) 插件不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21388709/

相关文章:

ios - 是否有比 Objective-C 中的委托(delegate)更简洁的方法来处理异步 http 请求?

git - 如何推送到git子树?

Git 快进 VS 无快进 merge

git - Spring Boot 云配置、GitLab、Docker 和 SSH key 设置

ios - 使用 suiteName 检测 NSUserDefaults 的变化

Android:从SQlite获取单行,空指针异常

android - 我想从 Android 应用程序打开日历应用程序

Android - HTTP 获取自签名

ios - 如何在 AfNetworking 3.0 中为请求添加 Headers?

java - gradle 在哪里保存依赖项的 jar?