Как установить значок из локального изображения для $ cordovaLocalNotification в мобильном приложении Ionic?

Я разрабатываю мобильное приложение с использованием Ionic framework и в настоящее время пытаюсь настроить локальные уведомления. Я использую ngCordova с плагин локальных уведомлений.

Уведомления в настоящее время работают, но я не могу понять, как установить значок из локального файла. Мое изображение в настоящее время находится в моем репозитории проекта ionic по пути 'www / img / image.png'. Я пытаюсь запланировать уведомление, используя следующий код:

  var alarmTime = new Date();
      alarmTime.setMinutes(alarmTime.getMinutes() + 15);

    $cordovaLocalNotification.schedule({
      id: Math.random().toString(),
      date: alarmTime,
      message: 'Timeout Warning',
      title: 'Return to prevent your session from expiring.',
      autoCancel: false,
      icon: 'img/image.png'
    }, $scope);

Уведомление работает, но нужный значок не появляется. В качестве значка я также пробовал www / img / image.png, а также file: //img/image.png. Каждый раз я всегда вижу значок робота Cordova по умолчанию вместо значка, который я пытаюсь указать.

Есть ли у кого-нибудь советы, как правильно установить параметр значка? В документации приведены примеры использования внешних изображений, но можно ли использовать локальное изображение?


person Blake    schedule 10.06.2015    source источник


Ответы (3)


$cordovaLocalNotification.schedule({
  id: Math.random().toString(),
  date: alarmTime,
  message: 'Timeout Warning',
  title: 'Return to prevent your session from expiring.',
  autoCancel: false,
  icon: 'someimage'
}, $scope);

Имя значка в приведенном выше примере указывает на расположение: /platforms/android/res/drawable/ Чтобы плагин использовал значки, файлы изображений должны располагаться по этому пути и иметь имена, определенные в параметрах. В этом случае это:

/platforms/android/res/drawable/someimage.png

Нашел решение здесь: ngCordova + плагин локальных уведомлений

Также проверьте документацию плагина на github: https://github.com/katzer/cordova-plugin-local-notifications

Похоже, вам следует использовать значок из общедоступного URL-адреса, попробуйте загрузить свой значок на общедоступный URL-адрес (диск, drobpox, tinypng ..).

person Mohamad Al Asmar    schedule 11.06.2015
comment
К сожалению, местный путь все еще не работал. Постараюсь опубликовать его на общедоступном URL-адресе. - person Blake; 11.06.2015
comment
@Blake вы пробовали установить значок с URL-адреса? это сработало для вас? - person Vandervidi; 12.08.2015
comment
@Vandervidi нет, у меня все еще возникают проблемы с настройкой пользовательских изображений значков. - person Blake; 13.08.2015
comment
у меня есть проблема, любое решение !! пожалуйста :( - person Oumaya Abdelkhalek; 28.12.2015
comment
вы проверяли документацию ngCordova? github.com/katzer/cordova-plugin-local-notifications (у меня отредактировал ответ) - person Mohamad Al Asmar; 29.08.2016

Для использования локального файла используйте путь как file: //

Вы можете использовать любой файл из папки www как / assets / www /, например, вы помещаете изображение в папку на www / img, путь должен быть установлен как file: // assets / www / img /your_file.png

Для настройки значка приложения для уведомлений используйте как file: //res/drawable-ldpi-v4/icon.png Пример:

      $cordovaLocalNotification.schedule({
            id: message.number,
            date: d,
            message: message['message'],
            title: message['name'],
            //ongoing: true //not cleared messages
            sound: null,
            icon: 'file://res/drawable-ldpi-v4/icon.png'
            //OR file://assets/www/img/your_file.png
        })
person ADyDyka    schedule 10.01.2016

 $scope.scheduleSingleNotification = function () {
        $cordovaLocalNotification.schedule({
          id: 1,
          title: 'GRM APP Builder',
          text: 'Quer café?!?',
          badge: 1,
          icon: 'res://coffee.png',
          data: {
            customProperty: 'custom value 1'
          }
        }).then(function (result) {
          console.log('Notification 1 triggered');
        });
      };

Потратив несколько часов на этот вопрос, я увидел, что один комментарий выше действительно правильный.

Если вы хотите изменить значок, вам необходимо создать папку с именем «drawable» в «[папка моего ионного приложения] \ platform \ android \ res \ drawable».

Но фокус в том, что после этого вам нужно выйти из режима livereload и снова выполнить команду CLI «ionic run android -l -c -s». Это необходимо, потому что вам нужно скопировать новые активы на устройство.

Я тестировал только с устройством Android, если вы можете протестировать с iOS, отправьте отзыв здесь.

person Alexandre Rocha    schedule 26.03.2016