Android — планирование локальных уведомлений в сборке PhoneGap/Apache Cordova 4.1.1

У меня возникают проблемы с попыткой запланировать локальные уведомления в приложении для Android (используя сборку PhoneGap).

Я пытаюсь запланировать локальное уведомление на установленную дату и время (например, 23 сентября 2016 г., 12:00).

Я пробовал использовать следующий плагин:

https://build.phonegap.com/plugins/2081

Мой файл config.xml выглядит так:

<?xml version="1.0" encoding="UTF-8" ?>
<widget xmlns   = "http://www.w3.org/ns/widgets"
    xmlns:gap   = "http://phonegap.com/ns/1.0"
    xmlns:android="http://schemas.android.com/apk/res/android"
    id          = "****"
    versionCode = "292000" 
    version     = "2.9.2" >

    <gap:config-file platform="android" parent="/manifest">
 <application android:debuggable="true" />
</gap:config-file>

<!-- versionCode is optional and Android only -->

<name>****</name>

<description>
   ****
</description>

<author href="****" email="****">
    ****
</author>

<icon src="icon.png" />
<allow-navigation href="*" />
<access origin="*" />

<preference name="phonegap-version" value="cli-5.2.0" />
<preference name="android-minSdkVersion" value="14" />
<preference name="android-targetSdkVersion" value="23"/>

<gap:plugin name='cordova-plugin-whitelist' source='npm' />

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

</widget>

Затем я планирую уведомление, используя код ниже:

cordova.plugins.notification.local.schedule({
    title: $title,
    text: $message,
    at: $date
});

При сборке для последней версии PhoneGap (cli-6.3.0) я получаю следующую ошибку на сайте build.phonegap.com:

Ошибка. Некоторые официальные плагины необходимо обновить, если используется PhoneGap >= 4.0.0. Обновите версию всех подключаемых модулей, которые могут включать следующий файл: LocalNotification.java.

Похоже, что плагин не был обновлен для последней версии PhoneGap, что приводит к сбою сборки.

Я пытался собрать последнюю поддерживаемую версию плагина (PhoneGap 3.7.0). Сборка завершается успешно и при прямой установке на Android-устройство все работает корректно. Уведомления срабатывают по расписанию.

Однако при попытке отправить эту сборку в магазин Google Play сборка отклоняется со следующей ошибкой:

Ваш APK был отклонен из-за наличия уязвимостей в системе безопасности, что нарушает политику вредоносных действий. На странице «Оповещения» содержится дополнительная информация о том, как решить проблему. Если вы отправили обновление, предыдущая версия вашего приложения по-прежнему доступна в Google Play.

Теперь сборка должна использовать версию 4.1.1 Apache Cordova, чтобы она была принята Google Play.

Я огляделся, но нигде не могу найти решение. Кто-нибудь знает об исправлении или, альтернативно, о другом плагине, который позволяет планировать локальные уведомления на Android с поддержкой Apache Cordova v4.1.1 или выше?


person glv19    schedule 08.09.2016    source источник
comment
@RaGu Ознакомьтесь с рабочим примером базового локального уведомления по следующей ссылке — github.com/gandhirajan/Cordova_Local_Notification. надеюсь, это должно помочь вам начать   -  person Gandhi    schedule 04.10.2016
comment
Ознакомьтесь с рабочим образцом базового локального уведомления по следующей ссылке — github.com/gandhirajan/Cordova_Local_Notification, надеюсь, он поможет вам начать работу.   -  person Gandhi    schedule 04.10.2016


Ответы (2)


Изменять

<gap:plugin name='cordova-plugin-whitelist' source='npm' />

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

to

<plugin name='cordova-plugin-whitelist' source='npm' />

<plugin name="de.appplant.cordova.plugin.local-notification" spec="0.8.4" source="npm" />
person jcesarmobile    schedule 04.10.2016

Я исправил себя.

Изменение имени плагина будет работать.

Нам нужно найти подходящий плагин и заменить старую версию в config.xml.

В моем случае я изменил

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

to

<gap:plugin name="trunk.plugin.local-notification" /> 
person RaGu    schedule 11.10.2016