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

Posted

技术标签:

【中文标题】Cordova 通知插件安装失败 (Cordova 3.6)【英文标题】:Cordova notification plugin failed installation (Cordova 3.6) 【发布时间】:2014-09-18 14:14:08 【问题描述】:

我已经将一个项目从 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) 不存在。”?

Cordova 说它已安装,我该如何解决?

【问题讨论】:

我应该使用 Plugman 安装插件吗?我阅读了文档here,但这一切都非常混乱,直接粘贴时底部的示例不起作用。所有这些都非常令人费解且记录不充分。 同样的事情,也不适用于地理定位和联系人插件。如果您有其他解决方案,请告诉我。 【参考方案1】:

@icl1c 你的回答不太适合我,在将 CDVNotification.m 添加到构建阶段后出现另一个错误。

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

【讨论】:

是的,你是对的,这也可能发生。我用一些插件的框架列表更新了我的答案。【参考方案2】:

这是我为解决此问题所做的。

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

    选择您的项目 选择项目目标 点击构建阶段标签 添加缺少的 *.m 文件 编译

您可以通过sudo npm update -g cordova 更新并在它不起作用时恢复您的命令来轻松尝试。告诉我。

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

在同一选项卡(构建阶段)中,您有 Link Binary With Libraries (xx items)

你需要的联系人插件:

AddressBook.framework AddressBookUI.framework

对于您需要的相机插件:

OpenAL.framewrok ImageIO.framework

你需要的通知插件:

AudioToolBox.framewrok

您需要的设备插件:

AssetsLibrary.framework

干杯

【讨论】:

【参考方案3】:

我已全局降级到 Cordova 3.5,现在看来还可以。

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

【讨论】:

【参考方案4】:

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

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

【讨论】:

以上是关于Cordova 通知插件安装失败 (Cordova 3.6)的主要内容,如果未能解决你的问题,请参考以下文章

Android 目标:未安装且插件安装失败 Cordova

Cordova Firebase 插件:安装新应用时,Apple 推送通知有时不起作用

安装cordova push插件后,Ionic build ios失败

Katzer 本地通知不起作用 - Cordova

ionic cordova build ios 使用 xcode swift 3 框架安装自定义插件失败

Cordova 插件推送通知不起作用?