Нажмите значок уведомления в Cordova Android - PullRequest
0 голосов
/ 23 мая 2018

Я использую Push-плагин Phonegap , и когда в области уведомлений отображается push-уведомление, значок представляет собой просто белый квадрат.Я бы хотел, чтобы вместо этого показывалось star.png.Я попытался выполнить документацию следующим образом:

Я поместил star.png в www/images и добавил следующие строки в config.xml

<platform name="android">
  <resource-file src="www/images/star.png" target="res/drawable-xhdpi/star.png" />
  <resource-file src="www/images/star.png" target="res/drawable-hdpi/star.png" />
  <resource-file src="www/images/star.png" target="res/drawable-mdpi/star.png" />
  <resource-file src="www/images/star.png" target="res/drawable-ldpi/star.png" />
</platform>

(Iпонимаю, что я должен использовать разные разрешения, но я просто пытаюсь заставить его работать сейчас.)

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

let push = PushNotification.init({
    android: { senderID: globalData.firebaseSenderID, icon: 'star.png', iconColor: 'blue' },
    ios: {}
});

Я также пытался icon: 'star'.Однако белый квадрат сохраняется.Как я могу заставить это работать?

Используя cordova@8.0.0 & cordova-android@6.4.0.

Ответы [ 3 ]

0 голосов
/ 21 ноября 2018

У меня была такая же проблема с этим плагином и значком уведомления по умолчанию (белый квадрат).Кажется, что свойство icon в функции init() было только для GCM (версия плагина 1.x).Я нашел решение, чтобы установить значок в полезной нагрузке (отправлено с сервера).К сожалению, я не смог изменить полезную нагрузку, так как это не наш сервис в этом приложении.

Но, к счастью, у firebase есть также собственная настройка push-иконок (по умолчанию: белый квадратный значок), которую можно заменить тегом метаданных в AndroidManifest.xml.

Решение

Попробуйте это решение, добавив следующий тег metadata в файл AndroidManifest.xml, расположенный по адресу platforms/android/app/src/main/:

<application>
    <!-- ... -->
    <meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/star"/>
    <!-- ... -->
</application>

Автоматизация - ловушка

Запустите ваше приложение для Android и проверьте, появляется ли ожидаемый значок.Если вы добились успеха, теперь вы можете расширить свой проект с помощью Cordova Hook, как мы сделали.Например, следующий скрипт OSX bash всегда добавляет указанную выше строку в AndroidManifest:

sed -i '' "s|</application>|<meta-data android:name=\"com.google.firebase.messaging.default_notification_icon\" android:resource=\"@drawable/star\"/></application>|1" platforms/android/app/src/main/AndroidManifest.xml
0 голосов
/ 17 февраля 2019

Для Cordova 8 я установил мой config.xml файл следующим образом:

<resource-file src="resources/android/notification/icon-mdpi.png" target="app/src/main/res/drawable-mdpi/notification.png" />
<resource-file src="resources/android/notification/icon-hdpi.png" target="app/src/main/res/drawable-hdpi/notification.png" />
<resource-file src="resources/android/notification/icon-xhdpi.png" target="app/src/main/res/drawable-xhdpi/notification.png" />
<resource-file src="resources/android/notification/icon-xxhdpi.png" target="app/src/main/res/drawable-xxhdpi/notification.png" />
<resource-file src="resources/android/notification/icon-xxxhdpi.png" target="app/src/main/res/drawable-xxxhdpi/notification.png" />

Затем я поместил значки в resources/android/notification/ со следующими разрешениями:

resources/android/notification/icon-mdpi.png     (24 × 24)
resources/android/notification/icon-hdpi.png     (36 × 36)
resources/android/notification/icon-xhdpi.png    (48 × 48)
resources/android/notification/icon-xxhdpi.png   (72 × 72)
resources/android/notification/icon-xxxhdpi.png  (96 × 96)

Впоследствии просто используется при планировании уведомлений как свойства:

smallIcon: 'res://notification',
0 голосов
/ 25 июня 2018

Если вы прочитали раздел в документации

Где значок - это имя файла изображения .png в папке Android res/drawable.Например: platform / android / res / drawable / phonegap.png Написание хука, описывающего, как скопировать изображение в папку Android res / drawable, выходит за рамки этого README, но есть отличное руководство, которое вы можете скопировать.,Вы можете увидеть эту статью для более подробной информации http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/

Там четко сказано, что вам нужно в папке drawable, которой у вас нет.

...