【发布时间】:2014-02-18 18:07:04
【问题描述】:
我有一个适用于 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 存储库中,我看到它向 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>
但是当我尝试访问 JS 中的 device 或 window.device 属性时,它告诉我 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... 格式时,我的应用在启动时崩溃。
所以,请帮我解决这个问题,让我清醒一下;)
【问题讨论】:
-
您是否运行
cordova build来准备/编译代码? -
是的,我运行
cordova build,它将所有内容复制到正确的目录,但仍然存在同样的问题
标签: android ios git plugins cordova