Android 上未显示 OneSignal-Pushnotification 小图标
OneSignal-Pushnotification small icon not displayed on Android
我们有一个 Cordova-App,它在每个 drawable-xy 文件夹中包含一个文件 'icon.png'。我们使用 OneSignal 提供推送通知。通知按预期工作。除了小图标。我的 phone 的顶部栏上只有一个空白图标,其中显示了应用程序符号。我尝试使用以下代码段:
{
...
"small_icon" : "@android:drawable/icon.png"
....
}
我还尝试了很多其他变体,不带 "android"、不带 "drawable"、不带斜线、带 .png 和不带 .png。等等等等
我在文档中找到了这个:(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 讲述可绘制资源:(https://developer.android.com/guide/topics/resources/drawable-resource.html)
图像保存在 res/drawable/myimage.png 时,此布局 XML 将图像应用于视图:
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/myimage" />
对我来说应该是@drawable/icon
。 (不起作用)
将大图标更改为 url 对我有用,带可绘制对象的大图标也不行。
这个 属性 small_icon
的正确用法是什么?
在AndroidSDK API21之后,你的小图标一定是这样的
仅限白色和透明。
因此,您可以编写代码。
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);
}
小图标是一个 Android 资源,它是一个没有文件扩展名或路径的名称。在您的情况下,您需要在发送到 OneSignal create notification REST API 调用的 JSON 有效负载中设置 "small_icon" : "icon"
。
对于 Cordova,您需要将图标文件放在 <project-root>/platforms/android/res
中。每个分辨率都应该有一个,并使用 Android Asset Studio 推荐的方法来创建这个小图标。如果您将名称设置为 ic_stat_onesignal_default
,OneSignal SDK 将使用它来发送所有 OneSignal 通知,除非您在 JSON 消息中覆盖它。例如,其中一个图标文件的完整路径应为 <project-root>/platforms/android/res/drawable-hdpi-v11/ic_stat_onesignal_default.png
。
有关完整详细信息,请参阅 OneSignal 的 Customize Notification Icons 指南。
我们有一个 Cordova-App,它在每个 drawable-xy 文件夹中包含一个文件 'icon.png'。我们使用 OneSignal 提供推送通知。通知按预期工作。除了小图标。我的 phone 的顶部栏上只有一个空白图标,其中显示了应用程序符号。我尝试使用以下代码段:
{
...
"small_icon" : "@android:drawable/icon.png"
....
}
我还尝试了很多其他变体,不带 "android"、不带 "drawable"、不带斜线、带 .png 和不带 .png。等等等等
我在文档中找到了这个:(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 讲述可绘制资源:(https://developer.android.com/guide/topics/resources/drawable-resource.html)
图像保存在 res/drawable/myimage.png 时,此布局 XML 将图像应用于视图:
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/myimage" />
对我来说应该是@drawable/icon
。 (不起作用)
将大图标更改为 url 对我有用,带可绘制对象的大图标也不行。
这个 属性 small_icon
的正确用法是什么?
在AndroidSDK API21之后,你的小图标一定是这样的
仅限白色和透明。
因此,您可以编写代码。
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);
}
小图标是一个 Android 资源,它是一个没有文件扩展名或路径的名称。在您的情况下,您需要在发送到 OneSignal create notification REST API 调用的 JSON 有效负载中设置 "small_icon" : "icon"
。
对于 Cordova,您需要将图标文件放在 <project-root>/platforms/android/res
中。每个分辨率都应该有一个,并使用 Android Asset Studio 推荐的方法来创建这个小图标。如果您将名称设置为 ic_stat_onesignal_default
,OneSignal SDK 将使用它来发送所有 OneSignal 通知,除非您在 JSON 消息中覆盖它。例如,其中一个图标文件的完整路径应为 <project-root>/platforms/android/res/drawable-hdpi-v11/ic_stat_onesignal_default.png
。
有关完整详细信息,请参阅 OneSignal 的 Customize Notification Icons 指南。