Oi,
Eu tenho tentado encontrar uma maneira de alterar o ícone exibido em uma barra de status do Android quando uma notificação por push é entregue. Segue um exemplo do que está acontecendo:
Como você pode ver, o ícone do meu aplicativo não é uma imagem transparente. Se eu mudar para uma imagem transparente, o ícone de push fica bem, mas o ícone do aplicativo agora é a imagem transparente e não é isso que eu quero. Eu tentei diferentes variações de nomes de arquivos, mas nada parece funcionar. Ao olhar para o código, src/android/FirebasePluginMessagingService.java na linha 73, há isto:
.setSmallIcon(getApplicationInfo().icon)
Estou correto em dizer que você não pode definir um ícone diferente do ícone do seu aplicativo?
Seria possível definir um arquivo diferente para o ícone da barra de status?
Ou alguma outra sugestão sobre como contornar este problema?
Eu não testei isso, mas você deve ser capaz de definir um ícone personalizado criando fcm_push_icon.png em todos os tamanhos necessários. Como padrão, o ícone do aplicativo será usado se fcm_push_icon.png não existir. Os ícones devem estar na árvore de pastas android/res.
você pode usar isso para gerar todos os tamanhos diferentes: http://romannurik.github.io/AndroidAssetStudio/icons-notification.html
Olá, estamos enfrentando o mesmo problema. Tentamos colocar ícones fcm_push_icon.png
na árvore de pastas android/res, mas o ícone de notificação ainda está branco.
@MikeBateman você encontrou uma solução?
Olá, para contornar o problema, você pode alterar o sdk de destino do seu aplicativo, verifique isso , mas é claro que não é uma solução adequada.
Estive pesquisando e obtive esta solução:
Vá para esta rota src/android/FirebasePluginMessagingService.java e encontre esta linha .setSmallIcon(getApplicationInfo().icon)
(como @MikeBateman mencionado), agora adicione uma condição que irá verificar se o aplicativo está rodando no android lollipop+, se for verdade a notificação deve usar um ícone do material design, se não for, usará o ícone do aplicativo padrão, o código:
...
.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;
}
Acho que o melhor seria apenas colocar o ícone do seu material design no myappresources e o plugin fazer esse trabalho sozinho, agora não sei como fazer isso, se alguém puder seria ótimo, espero que ajude! @delphaber
fixado em 33c52c7e8a1835d5f595e58eaef43e4f49b4b23a
o plugin agora usará notification_icon no drawable, se existir. caso contrário, ele usará o ícone do aplicativo padrão
Ei,
Eu não entendo. Eu tento colocar um notification_icon.png
em cada pasta drawable (para cada tamanho), mas o plugin ainda usa o padrão (ícone do aplicativo). Eu perdi alguma coisa?
Obrigado!
@blckshrk cc/ @robertarnesson
Eu encontrei a mesma coisa enquanto depois de atualizar os arquivos src do Android e adicionar todos os arquivos notification_icon.png
eu ainda estava vendo o quadrado branco. Acabei seguindo o conselho daqui: http://stackoverflow.com/questions/37325051/notification-icon-with-the-new-firebase-cloud-messaging-system
Primeiro, tive que atualizar meu Google Repository para tornar o SDK do Firebase mais recente no meu computador. Esta é a versão 9.8.0 por com.google.firebase:firebase-core
no momento em que escrevo isso e eu fazendo com que funcione. (Eu estava em 9.4.0 antes)
Então eu adicionei isso ao meu AndroidManifest.xml
:
<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/notification_icon" />
Se você quiser usar a opção deles para alterar o default_notification_color
você precisa adicionar o seguinte. Nosso ícone é um ícone branco com fundo transparente, então adicionamos nossa própria cor atrás do que é legal na tela de bloqueio.
<meta-data android:name="com.google.firebase.messaging.default_notification_color" android:resource="@color/orange" />
Você também precisa adicionar um arquivo res/values/colors.xml
com o seguinte, que é sua própria escolha de cor, é claro, se você estiver configurando o plano de fundo:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="orange">#FF8614</color>
</resources>
Tudo isso funciona a partir do Firebase 9.8.0
@blckshrk como você adiciona os ícones ao projeto? você precisa usar o config.xml do seu projeto para adicioná-los aos recursos. apenas colocá-los na pasta não os tornará visíveis para o código até onde eu sei
Atualmente estou usando o Ionic 2 para criar meu aplicativo e fazendo o seguinte:
Eu adicionei arquivos de ícone à pasta res do ionic, portanto, se eu executar o comando ionic resources
as imagens para diferentes tamanhos de tela serão criadas.
Isso também adiciona os caminhos da imagem ao arquivo config.xml
.
Alguém pode, por favor, dar uma resposta detalhada sobre o que exatamente precisa ser feito ..
Não tenho conhecimento do código nativo do Android e da estrutura de pastas, portanto, responda de acordo.
-Obrigado
Na verdade, como @prantikv , estou um pouco perdido. Eu uso Ionic 1 (mas com o mesmo fluxo de trabalho). Eu tentei colocar meu ícone em res/drawable/
e usar cordova-custom-config para adicionar <meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/notification_icon" />
no meu AndroidManifest.xml
(no nó manifest
diretamente), mas nada funciona como esperado.
@gylippus Eu não entendo a parte com.google.firebase:firebase-core
. Como você verifica a versão?
Obrigado rapazes!
@robertarnesson @gylippus Você tem um exemplo prático?
Eu consegui fazê-lo funcionar com 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>
e platforms/android/res/drawable/notification_icon.png
Muito obrigado por sua ajuda !
Pode ser ótimo ter um gancho para fazer este trabalho automaticamente (mover o arquivo e editar o manifesto) se um notification_icon.png
estiver na pasta raiz (ou resources
) (como é para o arquivos de configuração). O que achou disso?
@blckshrk
Eu tentei adicionar o seguinte código como você mencionou
<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>
Mas recebo o seguinte erro durante o processo de compilação
: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
Em seguida, adicionei manualmente o seguinte ao AndroidManifest.xml
<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/notification_icon" />
E funcionou para o Android 4.4 Mas não está funcionando para o Android 5.1.
Para qual versão você construiu?
Você também adicionou o arquivo notification_icon.png
em todas as pastas drawable
ou apenas uma?
@prantikv Você instalou https://github.com/dpa99c/cordova-custom-config ?
Na verdade, eu uso este gancho https://github.com/driftyco/ionic-package-hooks/blob/master/android_custom_resources.js para mover automaticamente o arquivo notification_icon.png
para cada pasta desenhável.
Basicamente eu tenho isso dentro do nó <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>
Também consegui lidar com a cor usando este gancho https://github.com/driftyco/ionic-package-hooks/blob/master/android_custom_values.js e a solução proposta por @gylippus (obrigado!)
@blckshrk Sim, eu instalei o plugin.. Você pode me informar o tamanho da imagem que você está usando.. As dimensões da imagem, bem como o tamanho em KB.
E a plataforma que você testou.
Alguma atualização sobre isso? 20 dias agora e ainda sem solução? Não pode ser fechado se ainda for um problema?!
Eu tive o mesmo problema e consegui resolvê-lo do lado do servidor. Coloquei manualmente o ícone nas pastas drawable dentro da pasta platform-android com o nome notification_icon.png.
Pelo console do Firebase continuo vendo o ícone errado, mas em um servidor próprio eu envio o seguinte como corpo da requisição:
$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
);
Espero que esta ajuda
Na verdade, depois de algum registro e leitura, parece-me que todo o código notificationBuilder em FirebasePluginMessagingService.java / sendNotification é discutível, pois nunca é executado quando há uma carga útil de notificação. Além do problema do ícone, também comecei a suspeitar disso, pois o código do notificationBuilder faz um .setSound(defaultSoundUri), mas nunca é reproduzido quando as notificações chegam na bandeja.
É por isso que a solução do sergiojup acima funciona, pois a notificação não está sendo construída pelo código do plugin, mas pelo próprio FCM, que recebe instruções da carga de notificação.
Quanto ao porquê.. no Android, onMessageReceived só é chamado quando:
*) existe APENAS uma carga útil de notificação e o aplicativo está em primeiro plano
*) há uma carga útil de notificação E carga útil de dados e o aplicativo está em primeiro plano
*) existe APENAS uma carga útil de dados e o aplicativo está em primeiro plano ou em segundo plano
Portanto, nesses casos, onMessageReceived NÃO é chamado:
*) existe APENAS uma carga útil de notificação e o aplicativo está em segundo plano
*) há uma carga útil de notificação E carga útil de dados e o aplicativo está em segundo plano
Olhando para o código, a única maneira de fazer o plugin construir a notificação é usar apenas a carga útil de dados, que tem propriedades de título e texto, enquanto o aplicativo está em segundo plano.
Obrigado @blckshrk !! Finalmente consegui fazer isso!
Estou usando Ionic v2 e [email protected] :
Iônico: 2.2.2
cordão: 6.5.0
npm: 4.6.1
Instale o plugin custom-config:
$ ionic plugin add cordova-custom-config --fetch --save
Baixe https://github.com/driftyco/ionic-package-hooks/blob/master/android_custom_resources.js e https://github.com/driftyco/ionic-package-hooks/blob/master/android_custom_values.js em um novo diretório chamado "package-hooks" (ou o que você quiser) na raiz do seu projeto.
package-hooks/android_custom_resources.js
package-hooks/android_custom_values.js
Crie os seguintes diretórios e arquivos na raiz do seu projeto (não dentro das plataformas):
resources/android/custom/notification_icon.png
resources/android/values/styles.xml
notification_icon.png
é o ícone de notificação do seu Android >= API 21. O meu é 144x144px e parece ótimo.
styles.xml
contém:
<?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>
E isso é tudo!
Eu não entendo onde adicionar o seguinte em config.xml? Dicas sobre isso? Além disso, não estou muito familiarizado com XML, o que devo adicionar exatamente no namespace? @shamank
<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 Desculpe, eu não estive por aqui esses dias. Dê uma olhada no arquivo original (com algumas coisas substituídas, é claro). Espero que ajude.
<?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 Muito obrigado por isso. Tenho lutado com a versão 0.1.24 o dia todo sem sorte e sua solução funcionou. Você pode me informar por que exatamente isso faz com que o ícone personalizado funcione? Eu segui as instruções no leia-me muito de perto e ele só mostrou um ícone acinzentado. Sua solução funcionou imediatamente... Eu só gostaria de saber o porquê!
@jskidd3 Que bom que ajudou! É realmente muito simples. O plug-in cordova-custom-config permite fazer alterações na configuração final do Cordova para cada plataforma (Info.plist / AndroidManifest.xml). Então, no bloco config-file, você diz à configuração do plug-in para Android para procurar por "default_notification_icon" no diretório drawables sob o novo nome de "notification_icon" (o plug-in lida com a extensão do arquivo, se bem me lembro). Então você define a cor de fundo no próximo bloco (vermelho). Agora você precisa de uma maneira de colocar esse arquivo (notification_icon.png) no lugar certo no momento da construção, então você precisa de um gancho para fazer isso. Isso é android_custom_resources.js. Ele pega o que estiver em resources/android/custom/* e coloca nos diretórios drawable do build (você pode mudar isso editando o script, mas está ok para esta tarefa). Semelhante com estilos de configuração adicionais. Você cria este arquivo styles.xml; defina a cor (eu a chamei de "vermelho", mas pode ser o que você quiser) e então android_custom_values.js copia para o diretório construído "platforms/android/res/values". Por fim, no config.xml você vincula esses scripts para serem executados em um determinado momento. Para esta tarefa, eles precisam ser copiados "after_prepare", o que significa que, depois que o Cordova preparou as compilações (novamente, se bem me lembro... você pode verificar os documentos de ganchos de pacotes do Ionic para mais detalhes/eventos).
A resposta de @alexbonhomme funcionou para mim :) https://github.com/arnesson/cordova-plugin-firebase/issues/53#issuecomment -304573222
A decisão de @shamank funciona para mim parcialmente.
Estou usando Angular + Cordova.
Tudo funciona, exceto uma coisa: android_custom_resources.js não criará pastas (drawable-ldpi, drawable-mdpi etc.) e não copiará arquivos se as pastas não existirem.
Então eu removi esse script e usei no config.xml:
Nota: os caminhos podem ser diferentes devido a alterações personalizadas e [email protected] e > possui a pasta res/
em outro local.
`
<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" />`
De qualquer forma, obrigado @alexbonhomme e @shamank !
Para Ionic 3 (mais especificamente para cordova-android@7) nos caminhos de solução do @shamank dentro:
package-hooks/android_custom_resources.js
package-hooks/android_custom_values.js
deve ser atualizado porque a pasta res
está dentro platforms/android/app/src/main/
agora.
vá para package-hooks/android_custom_resources.js
e atualize
var platformDir = 'platforms/android';
para
var platformDir = 'platforms/android/app/src/main';
vá para package-hooks/android_custom_values.js
e atualize
var platformDir = platforms/android/res/values';
para
var platformDir = 'platforms/android/app/src/main/res/values';
Comentários muito úteis
Obrigado @blckshrk !! Finalmente consegui fazer isso!
Estou usando Ionic v2 e [email protected] :
Iônico: 2.2.2
cordão: 6.5.0
npm: 4.6.1
Instale o plugin custom-config:
$ ionic plugin add cordova-custom-config --fetch --save
Baixe https://github.com/driftyco/ionic-package-hooks/blob/master/android_custom_resources.js e https://github.com/driftyco/ionic-package-hooks/blob/master/android_custom_values.js em um novo diretório chamado "package-hooks" (ou o que você quiser) na raiz do seu projeto.
package-hooks/android_custom_resources.js
package-hooks/android_custom_values.js
Crie os seguintes diretórios e arquivos na raiz do seu projeto (não dentro das plataformas):
resources/android/custom/notification_icon.png
resources/android/values/styles.xml
notification_icon.png
é o ícone de notificação do seu Android >= API 21. O meu é 144x144px e parece ótimo.styles.xml
contém:E isso é tudo!