我已经从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)不存在。”?
科尔多瓦说已安装,我该如何解决?
答案 0 :(得分:3)
以下是我为解决此问题所做的工作。
在Xcode中,您必须在构建阶段添加插件源。
您可以通过sudo npm update -g cordova
更新并轻松尝试使用您的命令(如果它不起作用)。让我知道。
此外,如果您之后仍有一些错误,请确保包含所需的所有框架:
在同一标签(构建阶段)中,您有链接二进制文件库(xx项目)
您需要的联系插件:
AddressBook.framework
AddressBookUI.framework
您需要的相机插件:
OpenAL.framewrok
ImageIO.framework
您需要的通知插件:
AudioToolBox.framewrok
您需要的设备插件:
AssetsLibrary.framework
干杯
答案 1 :(得分:3)
@ icl1c您的回答对我不起作用,在将CDVNotification.m添加到构建阶段后又出现了另一个错误。
我必须做的是添加依赖框架:AudioToolbox.framework以使其工作。
答案 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>