3

我們有一個Cordova-App,其中包含每個drawable-xy文件夾中的一個文件'icon.png'。我們使用OneSignal提供推送通知。通知按預期工作。除了小圖標。手機頂部欄上只有一個空白圖標,顯示應用程序符號。我試着用下面的代碼片斷:Android上未顯示OneSignal-Pushnotification小圖標

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

我也嘗試過很多,很多沒有「Android」的其他變化的,沒有「繪製」,沒有斜線,與巴紐和無.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圖像/繪製/ myimage.png ,這種佈局XML圖像適用於查看:

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

這應該是@drawable/icon我呢。 (不起作用)

將大圖標更改爲網址適用於我,帶有可繪製的大圖標不適用。

這個屬性的正確用法是什麼small_icon

+0

您的設備是不是棒棒糖? –

+0

這不是預棒棒糖。我在5.0.2,5.1.1,6.0,硬件和仿真器設備上進行了測試。 –

+0

小通知圖標用於所有版本的Android。從Lollipop 5.0開始,小圖標將被迫僅使用alpha通道,所有不透明部分將變爲白色。 – jkasten

回答

2

的Android SDK API 21後,你的小圖標必須這樣才

enter image description here

白色和透明。

所以,你可以編碼。

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); 
    } 
+0

這是Android-Java-Code。我的應用程序由純JavaScript組成。雖然,透明圖標的提示很好。我會再次嘗試使用半透明PNG。 –

+0

好吧,我不認爲這個答案很棒,但解決方案是:圖標必須是白色透明的。 –

3

小圖標是一個Android資源,它是一個沒有文件擴展名或路徑的名稱。在你的情況下,你需要在發送到OneSignal create notification REST API調用的JSON負載中設置"small_icon" : "icon"

對於科爾多瓦,你需要把你的圖標文件放在<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指南。