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)的主要内容,如果未能解决你的问题,请参考以下文章
Cordova Firebase 插件:安装新应用时,Apple 推送通知有时不起作用
安装cordova push插件后,Ionic build ios失败