簡體   English   中英

科爾多瓦Android中的推送通知圖標

[英]Push notification icon in Cordova Android

我正在使用Phonegap推插件,並且在通知區域中顯示推通知時,該圖標只是一個白色正方形。 我希望改為顯示star.png 我嘗試遵循以下文檔

我將star.png放在www/imagesstar.png添加到config.xml

<platform name="android">
  <resource-file src="www/images/star.png" target="res/drawable-xhdpi/star.png" />
  <resource-file src="www/images/star.png" target="res/drawable-hdpi/star.png" />
  <resource-file src="www/images/star.png" target="res/drawable-mdpi/star.png" />
  <resource-file src="www/images/star.png" target="res/drawable-ldpi/star.png" />
</platform>

(我知道我應該使用不同的分辨率,但我只是想立即使其正常工作。)

然后,當我初始化插件時,我使用:

let push = PushNotification.init({
    android: { senderID: globalData.firebaseSenderID, icon: 'star.png', iconColor: 'blue' },
    ios: {}
});

我也嘗試過icon: 'star' 但是,白色正方形仍然存在。 我該如何工作?

使用cordova@8.0.0和cordova-android@6.4.0。

這個插件和默認的通知圖標(白色正方形)也存在相同的問題。 似乎init()函數中的icon屬性僅適用於GCM(插件版本1.x)。 我找到了一種在推送有效載荷中設置圖標(從服務器發送)的解決方案。 不幸的是,我無法更改有效負載,因為它不是此應用程序中的服務。

但是幸運的是,firebase也有自己的push-icon設置(默認:白色方形圖標),可以將其替換為AndroidManifest.xml的元數據標記。

通過在位於platforms/android/app/src/main/ AndroidManifest.xml文件中添加以下metadata標簽來嘗試此解決方案:

<application>
    <!-- ... -->
    <meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/star"/>
    <!-- ... -->
</application>

自動化-掛鈎

運行您的android應用程序,並檢查是否出現了您期望的圖標。 如果成功,您現在可以像我們一樣通過cordova鈎子擴展您的項目。 例如,以下OSX bash腳本始終將上述行添加到AndroidManifest:

sed -i '' "s|</application>|<meta-data android:name=\"com.google.firebase.messaging.default_notification_icon\" android:resource=\"@drawable/star\"/></application>|1" platforms/android/app/src/main/AndroidManifest.xml

對於Cordova 8,我將config.xml文件設置如下:

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

然后,將這些圖標以以下分辨率放置在resources/android/notification/

resources/android/notification/icon-mdpi.png     (24 × 24)
resources/android/notification/icon-hdpi.png     (36 × 36)
resources/android/notification/icon-xhdpi.png    (48 × 48)
resources/android/notification/icon-xxhdpi.png   (72 × 72)
resources/android/notification/icon-xxxhdpi.png  (96 × 96)

之后僅在將通知安排為屬性時使用:

smallIcon: 'res://notification',

如果您閱讀文檔中的部分

其中icon是Android res/drawable文件夾中.png圖像文件的名稱。 例如:platform / android / res / drawable / phonegap.png編寫鈎子來描述如何將圖像復制到Android res / drawable文件夾不在本README的討論范圍之內,但是您可以復制一個出色的教程。 。 您可以查看此文章以了解更多詳細信息http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/

它清楚地表明您需要在drawable文件夾中,而您沒有。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM