离子2中的推送通知中不显示图标

时间:2017-10-14 04:03:59

标签: android ionic-framework push-notification ionic2 cordova-plugins

我正在尝试在通知中显示应用图标。但它显示空白图标。

我给出了如下推送选项:

 const options: PushOptions = {
      android: {
        titleKey: 'App',
        sound: 'true',
        icon: 'res/drawable/notification_icon',
        topics: ['MyTopic']
      },
      ios: {
        alert: 'true',
        badge: false,
        sound: 'true'
      },
      windows: {}
    };

并复制下面的图标图像,分辨率为40 * 40px。

<resource-file src="resources/notification_icon.png" target="res/drawable/notification_icon.png" />

我有什么遗失的吗? enter image description here

更新

我点了这个链接:https://github.com/ionic-team/ionic-cli/issues/608并通过使用以下语句将resources / android / notification / drawable-XYZ / ic_stat_ac_unit.png下的所有通知图标复制到res / drawable-XYZ / ic_stat_ac_unit.png来尝试它:

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

并将app.component.ts中的PushOptions修改为:

android: {
    titleKey: 'App',
    sound: true,
    vibrate:true,
    icon: 'ic_stat_ac_unit',
    iconColor:'#343434',
    topics: ['MyTopic']
  }

即使这样也行不通 - 同样的问题。

3 个答案:

答案 0 :(得分:2)

可能没有在要显示的形状的图标上设置Alpha通道。 Android 5.0+为所有小通知图标添加了白色遮罩。您可以使用Android Asset Studio创建图标集,因为它会向您显示设备上的外观,以确保您的设置正确。

  

在Android 5.0及更高版本中,推送通知图标必须为双色:   透明背景+白色前景;否则默认的应用程序   采取图标,任何不透明的东西都显示为白色(所以   非常可能,用户会看到白色的

答案 1 :(得分:1)

我认为你从以下链接得到答案:

https://stackoverflow.com/a/30795471/7329597

我希望它可以帮到你。:)

答案 2 :(得分:1)

我使用离子fcm插件来解决问题。我刚刚用Cordova fcm插件图标替换了cordova push插件。我在push plugin上浪费了很多时间。我希望这个答案可以帮助别人。

有关更多信息,请参阅以下链接:

https://ionicframework.com/docs/native/fcm/

https://github.com/fechanique/cordova-plugin-fcm