Кордова Нет

Сначала я хотел сказать, что это действительно хороший плагин ( https://github.com/katzer/cordova-plugin-local-notifications ), но с некоторыми трудностями он работает.

Я использую Android и Phonegap CLI. Я пробовал оба CLI 5.0 и теперь Phonegap 3.5.0, это мой config.xml:

<preference name="phonegap-version" value="3.5.0" />

В моем config.xml я пробовал все эти комбинации:

 <plugin name="de.appplant.cordova.plugin.local-notification" spec="0.8.1" source="pgb" /> <gap:plugin name="de.appplant.cordova.plugin.local-notification" /> <plugin name="de.appplant.cordova.plugin.local-notification" source="pgb" /> 

Однако уведомления не появляются – ничего не происходит по телефону – ничего, нада, зилч. Я также загрузил приложение KitchenSink ( https://github.com/katzer/cordova-plugin-local-notifications/tree/example ) и установил на сборку Phonegap и мой телефон, и ничего больше не происходит.

Это мой код на index.html, поэтому, когда телефон срабатывает, он должен зарегистрировать локальное уведомление как можно скорее:

 cordova.plugins.notification.local.registerPermission(function (granted) { // console.log('Permission has been granted: ' + granted); }); cordova.plugins.notification.local.schedule({ id: 1, title: 'Reminder', text: 'Dont forget to pray today.', every: 'minute', icon: 'res://icon', smallIcon: 'res://ic_popup_sync' }); 

Я также пробовал

 cordova.plugins.notification.local.schedule({ id: 2, text: "Good morning!", firstAt: tomorrow_at_8_am, every: "day" // "minute", "hour", "week", "month", "year" }); 

Даже приложение KitchenSink не работает – ничего не происходит по телефону?

Версия для Android: 5.1.1

Как я могу получить локальные уведомления в Phonegap?

Solutions Collecting From Web of "Кордова Нет"

Я тоже потратил много часов, пытаясь заставить этот плагин работать и у меня есть, но я считаю его одним из самых темпераментных.

В вашем js –

 var testNotifications = function () { document.addEventListener("deviceready", function () { console.warn("testNotifications Started"); // Checks for permission cordova.plugin.notification.local.hasPermission(function (granted) { console.warn("Testing permission"); if( granted == false ) { console.warn("No permission"); // If app doesnt have permission request it cordova.plugin.notification.local.registerPermission(function (granted) { console.warn("Ask for permission"); if( granted == true ) { console.warn("Permission accepted"); // If app is given permission try again testNotifications(); } else { alert("We need permission to show you notifications"); } }); } else { var pathArray = window.location.pathname.split( "/www/" ), secondLevelLocation = window.location.protocol +"//"+ pathArray[0], now = new Date(); console.warn("sending notification"); var isAndroid = false; if ( device.platform === "Android" ) { isAndroid = true; } cordova.plugin.notification.local.schedule({ id: 9, title: "Test notification 9", text: "This is a test notification", sound: isAndroid ? "file://sounds/notification.mp3" : "file://sounds/notification.caf", at: new Date( new Date().getTime() + 10 ) // data: { secret:key } }); } }); }, false); }; 

Теперь на вашем теге html –

 <button onclick="testNotifications()">Test notification</button> 

Это должно вызвать уведомление или предупредить вас о том, что ему нужны разрешения. Кроме того, верхний совет – убедиться, что ваши уведомления находятся в папке в корне проекта. Android должен быть mp3 и ios caf

Ответ 1: для версии 3.5.0

Посмотрите плагин plugin.xml . См. Строку 22

  <engine name="cordova" version=">=3.6.0" /> 

Это означает, что плагин поддерживает версию более 3.6.0, и вы используете 3.5.0

Ответ 2: для версии 5.0 или выше

Попробуйте использовать следующий код как index.html . Если он отлично работает, а затем и другие варианты в notification.schedule . Поскольку мы не предоставили уведомление о времени (при), будет немедленно вызвано.

 <html> <script type="text/javascript" src="cordova.js"></script> <script> document.addEventListener('deviceready', onDeviceReady.bind(this), false); function onDeviceReady() { cordova.plugins.notification.local.schedule({ id: 1, title: "Sample Notification", text: "foo", every: "week", data: { meetingId: "123#fg8" } }); }; </script> <body> </body> </html>