Cordova notification plugin не удалось установить (Cordova 3.6)
Я обновил проект с 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"
В конфигурации.xml (тот, что находится вне каталога платформ) я добавил:
<feature name="Notification">
<param name="ios-package" value="CDVNotification" />
</feature>
Когда в JavaScript я пытаюсь создать оповещение, подобное этому (и да, устройство готово):
navigator.notification.alert("Test alert", null);
Я получаю эту ошибку в отладчике XCode (I добавлены разрывы строк для разборчивости)
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 ответа:
@icl1c ваш ответ не совсем сработал для меня, получил еще одну ошибку после добавления CDVNotification.м на этапе сборки.
Что мне нужно было сделать, так это добавить зависимую структуру: AudioToolbox.рамки также, чтобы заставить его работать.
Вот что я сделал, чтобы исправить эту проблему.
В Xcode необходимо добавить источники плагинов на этапах сборки.
- выберите свой проект
- выберите цель вашего проекта
- перейдите на вкладку этапы сборки
- добавьте недостающее *.m файлов
- компиляция
Вы можете легко попробовать его, обновив через
sudo npm update -g cordova
и вернувшись с вашими командами, если он не работает. Дайте мне знать.Также, если у вас есть еще некоторые ошибки после этого убедитесь, что вы включили все необходимые фреймворки:
В той же вкладке (этапы сборки), у вас есть связать двоичный файл с библиотеками (xx элементов)
Для плагина contact вам нужно:
AddressBook.framework
AddressBookUI.framework
Для плагина камеры вам нужно:
OpenAL.framewrok
ImageIO.framework
Для плагина уведомлений вам нужно:
AudioToolBox.framewrok
Для плагина устройства вы нужно:
AssetsLibrary.framework
Ура