Cordova通知插件安装失败(Cordova 3.6)

时间:2014-09-18 14:14:09

标签: ios xcode cordova cordova-plugins

我已经从Cordova 3.4更新了一个项目到3.6.3,一切都已经崩溃了(像往常一样)。

但具体来说,这里,org.apache.cordova.dialogs插件在运行时不能在ios上运行。

Cordova说插件已安装:

$ cordova plugins ls
org.apache.cordova.dialogs 0.2.9 "Notification"
org.apache.cordova.vibration 0.3.10 "Vibration"

在config.xml(平台目录之外的那个)中,我添加了:

<feature name="Notification">
  <param name="ios-package" value="CDVNotification" />
</feature>

在JavaScript中,我尝试创建这样的警报(并且设备已准备就绪):

navigator.notification.alert("Test alert", null);

我在XCode调试器中抛出了这个错误(我为易读性添加了换行符)

2014-09-18 15:03:26.327 Milk[3045:60b] 
CDVPlugin class CDVNotification (pluginName: Notification) does not exist.
2014-09-18 15:03:26.328 Milk[3045:60b] 
ERROR: Plugin 'Notification' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
2014-09-18 15:03:26.329 Milk[3045:60b] 
-[CDVCommandQueue executePending] [Line 158] FAILED pluginJSON = [
  "INVALID",
  "Notification",
  "alert",
  [
    "Test alert",
    "Alert",
    "OK"
  ]
]

我已尝试cordova plugin rm / cordova plugin add并运行cordova platform rm来添加和删除ios。

所以:“CDVPlugin类CDVNotification(pluginName:Notification)不存在。”?

科尔多瓦说已安装,我该如何解决?

4 个答案:

答案 0 :(得分:3)

以下是我为解决此问题所做的工作。

在Xcode中,您必须在构建阶段添加插件源。

  1. 选择您的项目
  2. 选择项目的目标
  3. 点击构建阶段标签
  4. 添加缺少的* .m文件
  5. 编译
  6. 您可以通过sudo npm update -g cordova更新并轻松尝试使用您的命令(如果它不起作用)。让我知道。

    此外,如果您之后仍有一些错误,请确保包含所需的所有框架:

    在同一标签(构建阶段)中,您有链接二进制文件库(xx项目)

    您需要的联系插件:

    • AddressBook.framework
    • AddressBookUI.framework

    您需要的相机插件:

    • OpenAL.framewrok
    • ImageIO.framework

    您需要的通知插件:

    • AudioToolBox.framewrok

    您需要的设备插件:

    • AssetsLibrary.framework

    干杯

    xcode configuration

答案 1 :(得分:3)

@ icl1c您的回答对我不起作用,在将CDVNotification.m添加到构建阶段后又出现了另一个错误。

我必须做的是添加依赖框架:AudioToolbox.framework以使其工作。

enter image description here

答案 2 :(得分:2)

我全球降级到Cordova 3.5,现在看来还不错。

sudo npm uninstall cordova -g
sudo npm install -g cordova@3.5.0-0.2.7

答案 3 :(得分:0)

@jBoive回答加上在config.xml中添加以下代码,解决了我的问题:

<feature name="Notification">
    <param name="ios-package" value="CDVNotification" />
</feature>