Привет,
Я пытался найти способ изменить значок, который отображается в строке состояния Android при доставке push-уведомления. Вот пример того, что происходит:
Как видите, значок моего приложения не является прозрачным изображением. Если я изменю его на прозрачное изображение, значок push будет выглядеть нормально, но значок приложения теперь станет прозрачным, а это не то, что мне нужно. Я пробовал разные варианты имен файлов, но ничего не работает. При просмотре кода src/android/FirebasePluginMessagingService.java в строке 73 есть следующее:
.setSmallIcon(getApplicationInfo().icon)
Правильно ли я говорю, что вы не можете установить значок, отличный от значка вашего приложения?
Можно ли установить другой файл для значка строки состояния?
Или любые другие предложения о том, как обойти эту проблему?
Я не проверял это, но вы сможете установить собственный значок, создав fcm_push_icon.png всех необходимых размеров. По умолчанию будет использоваться значок приложения, если fcm_push_icon.png не существует. Значки должны находиться в дереве папок android/res.
вы можете использовать это для создания всех разных размеров: http://romannurik.github.io/AndroidAssetStudio/icons-notification.html
Привет, мы столкнулись с той же проблемой. Мы пытались разместить значки fcm_push_icon.png
в дереве папок android/res, но значок уведомления по-прежнему белый.
@MikeBateman , ты нашел решение?
Здравствуйте, чтобы обойти проблему, вы можете изменить целевой SDK своего приложения, пожалуйста, проверьте это , но, конечно, это не правильное решение.
Я исследовал и получил это решение:
Перейдите к этому маршруту src/android/FirebasePluginMessagingService.java и найдите эту строку .setSmallIcon(getApplicationInfo().icon)
(как упоминалось @MikeBateman ), теперь добавьте условие, которое будет проверять, работает ли приложение в android lollipop+, если это правда, уведомление следует использовать значок материального дизайна, если это не так, он будет использовать значок приложения по умолчанию, код:
...
.setSmallIcon(getNotificationIcon())
...
//At the end of FirebasePluginMessagingService.java
private int getNotificationIcon() {
boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP);
System.out.println("SCLMTEST >lollipop?:"+useWhiteIcon);
return useWhiteIcon ? R.drawable.myMaterialIcon: getApplicationInfo().icon;
}
Я думаю, что лучше всего было бы просто поместить значок вашего материального дизайна в myappresources, и плагин сделает эту работу сам, теперь я не знаю, как это сделать, поэтому, если кто-нибудь может, это было бы здорово, надеюсь, это поможет! @дельфабер
исправлено в 33c52c7e8a1835d5f595e58eaef43e4f49b4b23a
плагин теперь будет использовать notification_icon в drawable, если он существует. в противном случае он будет использовать значок приложения по умолчанию
Привет,
Я не понимаю. Я пытаюсь поместить notification_icon.png
в каждую папку с возможностью рисования (для каждого размера), но плагин по-прежнему использует папку по умолчанию (значок приложения). Я что-то пропустил?
Спасибо!
@blckshrk cc/ @robertarnesson
Я столкнулся с тем же, хотя после обновления файлов Android src и добавления всех файлов notification_icon.png
я все еще видел белый квадрат. В итоге я последовал совету отсюда: http://stackoverflow.com/questions/37325051/notification-icon-with-the-new-firebase-cloud-messaging-system
Сначала мне пришлось обновить свой репозиторий Google, чтобы сделать последнюю версию Firebase SDK самой последней на моем компьютере. Это версия 9.8.0 для com.google.firebase:firebase-core
на момент написания этого, и я заставляю ее работать. (раньше я был на 9.4.0)
Затем я добавил это в свой AndroidManifest.xml
:
<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/notification_icon" />
Если вы хотите использовать их опцию для изменения default_notification_color
, вам нужно добавить следующее. Наша иконка — белая иконка с прозрачным фоном, поэтому мы добавили собственный цвет, за которым приятно смотреться на экране блокировки.
<meta-data android:name="com.google.firebase.messaging.default_notification_color" android:resource="@color/orange" />
Вам также необходимо добавить файл res/values/colors.xml
со следующим, который, конечно, вы выбираете сами, если вы устанавливаете фон:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="orange">#FF8614</color>
</resources>
Все это работает с Firebase 9.8.0
@blckshrk , как добавить значок(и) в проект? вам нужно использовать config.xml вашего проекта, чтобы добавить их в ресурсы. насколько я знаю, просто поместив их в папку, они не сделают их видимыми для кода.
В настоящее время я использую Ionic 2 для создания своего приложения и делаю следующее:
Я добавил файлы значков в папку res ionic, поэтому, если я запускаю команду ionic resources
, создаются изображения для разных размеров экрана.
Это также добавляет пути к изображениям в файл config.xml
.
Может кто-нибудь подробно ответить, что именно нужно сделать..
У меня нет знаний о родном коде Android и структуре папок, поэтому отвечайте соответственно.
-Спасибо
На самом деле, как и @prantikv , я немного растерялся. Я использую Ionic 1 (но с тем же рабочим процессом). Я попытался поместить свой значок в res/drawable/
и использовать cordova-custom-config , чтобы добавить <meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/notification_icon" />
в мой AndroidManifest.xml
(непосредственно в узел manifest
), но ничего не работает, как ожидалось.
@gylippus Я не понимаю часть com.google.firebase:firebase-core
. Как проверить версию?
Спасибо, парни!
@robertarnesson @gylippus У вас есть рабочий пример?
Мне удалось заставить его работать с cordova-custom-config
<config-file parent="./application" target="AndroidManifest.xml">
<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/notification_icon" />
</config-file>
и platforms/android/res/drawable/notification_icon.png
Спасибо большое за вашу помощь !
Было бы здорово иметь хук для автоматического выполнения этой работы (перемещение файла и редактирование манифеста), если notification_icon.png
находится в корневой папке (или resources
) (как для файлы конфигурации). Что об этом думал?
@blckshrk
Я попытался добавить следующий код, как вы упомянули
<config-file parent="./application" target="AndroidManifest.xml">
<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/notification_icon" />
</config-file>
Но я получаю следующую ошибку в процессе сборки
:processDebugResources
E:\Development\IONIC 2\allcouriertracking\allcouriertracking5\platforms\android\res\xml\config.xml:57 : AAPT: Error parsing XML: unbound prefix
FAILED
FAILURE: Build failed with an exception.
:processDebugResources
E:\Development\IONIC 2\allcouriertracking\allcouriertracking5\platforms\android\res\xml\config.xml:57 : AAPT: Error parsing XML: unbound prefix
FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':processDebugResources'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'I:\DEVELOPMENT PROGRAMS\android-sdk-windows\build-tools\24.0.3\aapt.exe'' finished with non-zero exit value 1
Затем я вручную добавил следующее в AndroidManifest.xml:
<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/notification_icon" />
И это работало для Android 4.4, но не работало для Android 5.1.
Для какой версии вы собирали?
Также вы добавили файл notification_icon.png
во все папки drawable
или только в одну?
@prantikv Вы установили https://github.com/dpa99c/cordova-custom-config ?
На самом деле я использую этот хук https://github.com/driftyco/ionic-package-hooks/blob/master/android_custom_resources.js для автоматического перемещения файла notification_icon.png
в каждую из доступных папок.
В основном у меня есть это внутри узла <platform name="android">
:
<hook src="hooks/after_prepare/android_custom_resources.js" type="after_prepare"/>
<config-file parent="./application" target="AndroidManifest.xml">
<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/notification_icon" />
</config-file>
Мне также удалось справиться с цветом, используя этот хук https://github.com/driftyco/ionic-package-hooks/blob/master/android_custom_values.js и решение, предложенное @gylippus (спасибо!)
@blckshrk Да, я установил плагин. Не могли бы вы сообщить мне размер изображения, которое вы используете? Размеры изображения, а также размер в КБ.
И платформа, которую вы протестировали.
Есть новости по этому поводу? Прошло 20 дней, а решения нет? Это не может быть закрыто, если это все еще проблема?!
У меня была такая же проблема, и я мог решить ее со стороны сервера. Я вручную поместил значок в папки с возможностью рисования внутри папки платформы Android с именем уведомление_icon.png.
Через консоль Firebase я продолжаю видеть неправильный значок, но на собственный сервер я отправляю следующее в виде тела запроса:
$fields = array(
"registration_ids" => "array of registration ids",
"notification" => array(
"body"=>"message to send as a body",
"icon"=>"notification_icon",
"color"=>"your color in hex"
),
"priority"=>10
);
Надеюсь, это поможет
На самом деле, после некоторого ведения журнала и чтения мне кажется, что весь код уведомления Builder в FirebasePluginMessagingService.java/sendNotification является спорным, поскольку он никогда не запускается, когда есть полезная нагрузка уведомления. Помимо проблемы со значком, я также начал подозревать это, поскольку код уведомления Builder выполняет .setSound (defaultSoundUri), но он никогда не воспроизводится, когда уведомления поступают в трей.
Вот почему приведенное выше решение sergiojup работает, поскольку уведомление создается не кодом плагина, а самим FCM, который получает инструкции из полезной нагрузки уведомления.
Что касается почему... на Android onMessageReceived вызывается только тогда, когда:
*) есть ТОЛЬКО полезная нагрузка уведомления и приложение находится на переднем плане
*) есть полезная нагрузка уведомления И полезная нагрузка данных, и приложение находится на переднем плане
*) есть ТОЛЬКО полезная нагрузка данных, а приложение находится на переднем плане или в фоновом режиме
Итак, в этих случаях onMessageReceived НЕ вызывается:
*) есть ТОЛЬКО полезная нагрузка уведомления и приложение находится в фоновом режиме
*) есть полезная нагрузка уведомления И полезная нагрузка данных, а приложение находится в фоновом режиме
Глядя на код, единственный способ заставить плагин создать уведомление — это использовать только полезные данные, которые имеют свойства заголовка и текста, пока приложение находится в фоновом режиме.
Спасибо @blckshrk !! У меня наконец-то получилось это сделать!
Я использую Ionic v2 и [email protected] :
Ионный: 2.2.2
кордова: 6.5.0
нпм: 4.6.1
Установите плагин custom-config:
$ ionic plugin add cordova-custom-config --fetch --save
Загрузите https://github.com/driftyco/ionic-package-hooks/blob/master/android_custom_resources.js и https://github.com/driftyco/ionic-package-hooks/blob/master/android_custom_values.js в новый каталог под названием «package-hooks» (или как вы хотите) в корне вашего проекта.
package-hooks/android_custom_resources.js
package-hooks/android_custom_values.js
Создайте следующие каталоги и файлы в корне вашего проекта (не внутри платформ):
resources/android/custom/notification_icon.png
resources/android/values/styles.xml
notification_icon.png
– это ваш Android >= значок уведомления API 21. У меня размер 144x144px, выглядит отлично.
styles.xml
содержит:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="red">#FF8614</color>
</resources>
<widget ... xmlns:android="http://schemas.android.com/apk/res/android">
<platform name="android">
<hook src="package-hooks/android_custom_resources.js" type="after_prepare"/>
<hook src="package-hooks/android_custom_values.js" type="after_prepare"/>
<config-file parent="./application" target="AndroidManifest.xml">
<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/notification_icon"/>
<meta-data android:name="com.google.firebase.messaging.default_notification_color" android:resource="@color/red"/>
</config-file>
</platform>
<widget>
И это все!
Я не понимаю, куда добавить следующее в config.xml? Советы по этому поводу? Кроме того, я не очень хорошо знаком с XML, что именно я должен добавить в пространство имен? @шаманк
<widget ... xmlns:android="http://schemas.android.com/apk/res/android">
<platform name="android">
<hook src="package-hooks/android_custom_resources.js" type="after_prepare"/>
<hook src="package-hooks/android_custom_values.js" type="after_prepare"/>
<hook src="package-hooks/android_fixes.js" type="after_prepare"/>
<config-file parent="./application" target="AndroidManifest.xml">
<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/notification_icon"/>
<meta-data android:name="com.google.firebase.messaging.default_notification_color" android:resource="@color/red"/>
</config-file>
</platform>
<widget>
@Rockforced Извините, меня не было в последнее время. Взгляните на исходный файл (конечно, с некоторыми заменами). Надеюсь, поможет.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<widget id="com.example" version="1.0.20" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
<name>Test</name>
<description>Blabla.</description>
<author email="[email protected]" href="https://example.com/">Example</author>
<content src="index.html"/>
<access origin="*"/>
<allow-navigation href="http://ionic.local/*"/>
<allow-navigation href="http://192.168.0.1:8100"/>
<allow-intent href="http://*/*"/>
<allow-intent href="https://*/*"/>
<allow-intent href="tel:*"/>
<allow-intent href="sms:*"/>
<allow-intent href="mailto:*"/>
<allow-intent href="geo:*"/>
<platform name="android">
<allow-intent href="market:*"/>
<hook src="package-hooks/android_custom_resources.js" type="after_prepare"/>
<hook src="package-hooks/android_custom_values.js" type="after_prepare"/>
<hook src="package-hooks/android_fixes.js" type="after_prepare"/>
<config-file parent="./application" target="AndroidManifest.xml">
<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/notification_icon"/>
<meta-data android:name="com.google.firebase.messaging.default_notification_color" android:resource="@color/red"/>
</config-file>
<icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png"/>
<icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png"/>
<icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png"/>
<icon density="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png"/>
<icon density="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png"/>
<icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png"/>
<splash density="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png"/>
<splash density="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png"/>
<splash density="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png"/>
<splash density="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png"/>
<splash density="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png"/>
<splash density="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png"/>
</platform>
<platform name="ios">
<allow-intent href="itms:*"/>
<allow-intent href="itms-apps:*"/>
<icon height="57" src="resources/ios/icon/icon.png" width="57"/>
<icon height="114" src="resources/ios/icon/[email protected]" width="114"/>
<icon height="40" src="resources/ios/icon/icon-40.png" width="40"/>
<icon height="80" src="resources/ios/icon/[email protected]" width="80"/>
<icon height="120" src="resources/ios/icon/[email protected]" width="120"/>
<icon height="50" src="resources/ios/icon/icon-50.png" width="50"/>
<icon height="100" src="resources/ios/icon/[email protected]" width="100"/>
<icon height="60" src="resources/ios/icon/icon-60.png" width="60"/>
<icon height="120" src="resources/ios/icon/[email protected]" width="120"/>
<icon height="180" src="resources/ios/icon/[email protected]" width="180"/>
<icon height="72" src="resources/ios/icon/icon-72.png" width="72"/>
<icon height="144" src="resources/ios/icon/[email protected]" width="144"/>
<icon height="76" src="resources/ios/icon/icon-76.png" width="76"/>
<icon height="152" src="resources/ios/icon/[email protected]" width="152"/>
<icon height="167" src="resources/ios/icon/[email protected]" width="167"/>
<icon height="29" src="resources/ios/icon/icon-small.png" width="29"/>
<icon height="58" src="resources/ios/icon/[email protected]" width="58"/>
<icon height="87" src="resources/ios/icon/[email protected]" width="87"/>
<splash height="1136" src="resources/ios/splash/Default-568h@2x~iphone.png" width="640"/>
<splash height="1334" src="resources/ios/splash/Default-667h.png" width="750"/>
<splash height="2208" src="resources/ios/splash/Default-736h.png" width="1242"/>
<splash height="2048" src="resources/ios/splash/Default-Portrait@2x~ipad.png" width="1536"/>
<splash height="1024" src="resources/ios/splash/Default-Portrait~ipad.png" width="768"/>
<splash height="960" src="resources/ios/splash/Default@2x~iphone.png" width="640"/>
<splash height="480" src="resources/ios/splash/Default~iphone.png" width="320"/>
</platform>
<preference name="webviewbounce" value="false"/>
<preference name="UIWebViewBounce" value="false"/>
<preference name="DisallowOverscroll" value="true"/>
<preference name="android-minSdkVersion" value="16"/>
<preference name="android-targetSdkVersion" value="23"/>
<preference name="BackupWebStorage" value="none"/>
<preference name="SplashMaintainAspectRatio" value="true"/>
<preference name="SplashReloadOnOrientationChange" value="true"/>
<preference name="SplashScreenDelay" value="3000"/>
<preference name="FadeSplashScreen" value="false"/>
<preference name="FadeSplashScreenDuration" value="0"/>
<preference name="orientation" value="portrait"/>
<preference name="SplashScreenBackgroundColor" value="0xFFFFFFFF"/>
<preference name="SplashScreen" value="screen"/>
<preference name="AutoHideSplashScreen" value="false"/>
<preference name="KeyboardDisplayRequiresUserAction" value="false"/>
<preference name="loadUrlTimeoutValue" value="700000"/>
<feature name="StatusBar">
<param name="ios-package" onload="true" value="CDVStatusBar"/>
</feature>
<feature name="InAppBrowser">
<param name="ios-package" value="CDVInAppBrowser"/>
<param name="android-package" value="org.apache.cordova.inappbrowser.InAppBrowser"/>
</feature>
<plugin name="cordova-plugin-app-event" spec="~1.2.0"/>
<plugin name="cordova-plugin-device" spec="~1.1.3"/>
<plugin name="cordova-plugin-console" spec="~1.0.4"/>
<plugin name="cordova-plugin-whitelist" spec="~1.3.2"/>
<plugin name="cordova-plugin-splashscreen" spec="~4.0.2"/>
<plugin name="cordova-plugin-statusbar" spec="~2.2.2"/>
<plugin name="ionic-plugin-keyboard" spec="~2.2.1"/>
<plugin name="cordova-plugin-geolocation" spec="~2.4.1"/>
<plugin name="cordova-plugin-compat" spec="~1.1.0"/>
<plugin name="cordova-plugin-inappbrowser" spec="~1.6.1"/>
<plugin name="cordova-plugin-nativestorage" spec="~2.2.2"/>
<plugin name="cordova-plugin-firebase" spec="~0.1.20"/>
<plugin name="cordova.plugins.diagnostic" spec="~3.0.4"/>
<plugin name="cordova-plugin-googlemaps" spec="~1.4.0">
<variable name="API_KEY_FOR_ANDROID" value="blabla"/>
<variable name="API_KEY_FOR_IOS" value="blabla"/>
</plugin>
<plugin name="ionic-plugin-deeplinks" spec="~1.0.14">
<variable name="URL_SCHEME" value="blabla"/>
<variable name="DEEPLINK_SCHEME" value="https"/>
<variable name="DEEPLINK_HOST" value="www.blabla.com"/>
<variable name="ANDROID_PATH_PREFIX" value="/"/>
</plugin>
<plugin name="cordova-custom-config" spec="~3.2.0"/>
<icon src="resources/ios/icon/[email protected]"/>
<engine name="android" spec="~6.2.2"/>
</widget>
@shamank Большое спасибо за это. Весь день боролся с версией 0.1.24, но безуспешно, и ваше решение сработало. Можете ли вы сообщить мне, почему именно это заставляет работать пользовательский значок? Я очень внимательно следовал инструкциям в read me, и только когда-либо показывался серый значок. Ваше решение сработало сразу... Я просто хотел бы знать, почему!
@jskidd3 Рад, что это помогло! Это действительно довольно просто. Плагин cordova-custom-config позволяет вносить изменения в окончательный конфиг Cordova для каждой платформы (Info.plist/AndroidManifest.xml). Итак, в блоке файла конфигурации вы указываете конфигурации плагина для Android искать «default_notification_icon» в каталоге drawables под новым именем «notification_icon» (плагин обрабатывает расширение файла, если я хорошо помню). Затем вы определяете цвет фона в следующем блоке (красный). Теперь вам нужен способ получить этот файл (notification_icon.png) в нужном месте во время сборки, поэтому для этого вам нужен хук. Это android_custom_resources.js. Он берет все, что находится в resources/android/custom/* и помещает в доступные для сборки каталоги (вы можете изменить это, отредактировав скрипт, но это нормально для этой задачи). Аналогично с дополнительными стилями конфигурации. Вы создаете этот файл styles.xml; определите цвет (я назвал его «красным», но он может быть каким угодно), а затем android_custom_values.js скопирует его в созданный каталог «platforms/android/res/values». Наконец, в config.xml вы привязываете эти скрипты к запуску в определенный момент. Для этой задачи их нужно скопировать "after_prepare", что означает, что после того, как Кордова подготовила сборки (опять же, если я хорошо помню... вы можете проверить документы Ionic по перехватам пакетов для получения более подробной информации/событий).
Ответ @alexbonhomme сработал для меня :) https://github.com/arnesson/cordova-plugin-firebase/issues/53#issuecomment -304573222
Решение @shamank работает для меня частично.
Я использую Angular+Кордова.
Все работает, кроме одного: android_custom_resources.js не создает папки (drawable-ldpi, drawable-mdpi и т. д.) и не копирует файлы, если папки не существуют.
Поэтому я удалил этот скрипт и использовал его в config.xml:
Примечание: пути могут отличаться из-за пользовательских изменений, а папка [email protected] и > имеет res/
в другом месте.
`
<resource-file src="res/custom/android/notification.png" target="app/src/main/res/drawable-mdpi/notification.png" />
<resource-file src="res/custom/android/notification.png" target="app/src/main/res/drawable-hdpi/notification.png" />
<resource-file src="res/custom/android/notification.png" target="app/src/main/res/drawable-xhdpi/notification.png" />
<resource-file src="res/custom/android/notification.png" target="app/src/main/res/drawable-xxhdpi/notification.png" />
<resource-file src="res/custom/android/notification.png" target="app/src/main/res/drawable-xxxhdpi/notification.png" />`
В любом случае, спасибо @alexbonhomme и @shamank !
Для Ionic 3 (точнее, для cordova-android@7) в путях решения @shamank внутри:
package-hooks/android_custom_resources.js
package-hooks/android_custom_values.js
должен быть обновлен, потому что папка res
#$1$#$ теперь находится внутри platforms/android/app/src/main/
.
перейдите на package-hooks/android_custom_resources.js
и обновите
var platformDir = 'platforms/android';
к
var platformDir = 'platforms/android/app/src/main';
перейдите на package-hooks/android_custom_values.js
и обновите
var platformDir = platforms/android/res/values';
к
var platformDir = 'platforms/android/app/src/main/res/values';
Самый полезный комментарий
Спасибо @blckshrk !! У меня наконец-то получилось это сделать!
Я использую Ionic v2 и [email protected] :
Ионный: 2.2.2
кордова: 6.5.0
нпм: 4.6.1
Установите плагин custom-config:
$ ionic plugin add cordova-custom-config --fetch --save
Загрузите https://github.com/driftyco/ionic-package-hooks/blob/master/android_custom_resources.js и https://github.com/driftyco/ionic-package-hooks/blob/master/android_custom_values.js в новый каталог под названием «package-hooks» (или как вы хотите) в корне вашего проекта.
package-hooks/android_custom_resources.js
package-hooks/android_custom_values.js
Создайте следующие каталоги и файлы в корне вашего проекта (не внутри платформ):
resources/android/custom/notification_icon.png
resources/android/values/styles.xml
notification_icon.png
– это ваш Android >= значок уведомления API 21. У меня размер 144x144px, выглядит отлично.styles.xml
содержит:И это все!