notificaciones google gcm android cordova push-notification android-drawable onesignal

google - El ícono de OneSignal-Pushnotification no se muestra en Android



notificaciones push android google cloud messaging(gcm) (2)

Después de Android SDK API 21, su pequeño icono debe ser así

blanco y transparente solamente

Entonces, puedes codificar esto.

if(android.os.Build.VERSION.SDK_INT>=android.os.Build.VERSION_CODES.LOLLIPOP){ notificationBuilder.setSmallIcon(R.drawable.ic_aphla_logo); } else { notificationBuilder.setSmallIcon(R.drawable.ic_logo); }

Tenemos una aplicación Cordova que contiene un archivo ''icon.png'' en cada carpeta drawable-xy. Proporcionamos notificaciones automáticas con OneSignal. Las notificaciones funcionan como se esperaba. Excepto el ícono pequeño. Solo hay un icono en blanco en la barra superior de mi teléfono, donde se muestran los símbolos de la aplicación. Intenté usar el siguiente fragmento:

{ ... "small_icon" : "@android:drawable/icon.png" .... }

También probé muchas otras variaciones sin "android", sin "drawable", sin barra, con .png y sin .png. etcétera etcétera.

Encontré esto en la documentación: ( https://documentation.onesignal.com/reference#create-notification )

small_icon: stringOptional Specific Android icon to use. If blank the app icon is used. Must be the drawable resource name.

Android cuenta sobre recursos dibujables: ( https://developer.android.com/guide/topics/resources/drawable-resource.html )

Con una imagen guardada en res / drawable / myimage.png, este XML de diseño aplica la imagen a una Vista:

<ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/myimage" />

que debería ser @drawable/icon para mí entonces. (No funciona)

Cambiar el ícono grande a una url me funciona, pero el ícono grande con un drawable no funciona.

¿Cuál es el uso correcto de esta propiedad small_icon ?


El ícono pequeño es un recurso de Android que es un nombre sin una extensión o ruta de archivo. En su caso, debe establecer "small_icon" : "icon" en la carga útil JSON enviada a OneSignal crear llamada REST notificación API.

Para Cordova, necesita colocar sus archivos de iconos en <project-root>/platforms/android/res . Debería haber uno para cada resolución y usar Android Asset Studio, la forma recomendada de crear este pequeño icono. Si establece el nombre en ic_stat_onesignal_default , OneSignal SDK lo utilizará para todas las notificaciones de OneSignal a menos que lo anule en el mensaje JSON. La ruta completa para uno de los archivos de icono debe ser <project-root>/platforms/android/res/drawable-hdpi-v11/ic_stat_onesignal_default.png por ejemplo.

Consulte la guía Personalizar iconos de notificación de OneSignal para obtener más información.