您好,登錄后才能下訂單哦!
極光論壇很多人遇到這種問題:在收到推送消息的那一瞬間,推送圖標被截取。在極光論壇大多數人的答案是圖片適配,既在不同的drawble文件夾放推送的icon,然,極光推送默認調用應用的launcher_icon,我的手機分辨率是1920*1080,調用drawable-xhdpi文件夾里面的launcher_icon,大小為144*144,而在drawable-xhdpi中的通知的圖標大小為48*48才會顯示全,所以出現被截取的現象是很正常不過。
問題來了,既然極光默認調用應用的launcher_icon,難道我們要把應用的launcher_icon改為48*48嗎?這樣我們的應用圖標在桌面上顯示的肯定小,出現白邊。問了極光的技術客服,不知道他們是沒有懂我的意思還是上什么的,他們的答案依然是對圖標做適配。呵呵,要把應用圖標大小改為48*48?
當然極光也提供了對應的解決方案,只是官方文檔只說了在客戶端如何,卻沒有說要在服務端做對應的設置,導致本屌走路不少彎路。
1、 客戶端設置:http://docs.jpush.cn/pages/viewpage.action?pageId=2621539
原文如下:
自定義的通知欄樣式,是在客戶端進行的。請參考 通知欄樣式定制API 來看所支持的功能。
有個 PushNotificationBuilder 概念,開發者使用 setPushNotificationBuilder 方法為某種類型的 PushNotificationBuilder 指定編號。
setPushNotificationBuilder 可以在 JPushInterface.init() 之后任何地方調用,可以是開發者應用的邏輯來觸發調用,或者初始化時調用。
只需要設置一次,JPush SDK 會記住這個設置。在下次收到推送通知時,就根據通知里指定的編號來找到 PushNotificationBuilder 來展現、執行。
此 API 改變默認的編號為 0 的通知欄樣式。
此 API 為開發者指定的編號,設置一個自定義的 PushNotificationBuilder(通知樣式構建器)。
定制聲音、震動、閃燈等 Notification 樣式。
int builderId =1;
BasicPushNotificationBuilder builder = new BasicPushNotificationBuilder(MainActivity. this ); builder.statusBarDrawable = R.drawable.jpush_notification_icon; builder.notificationFlags = Notification.FLAG_AUTO_CANCEL; //設置為自動消失 builder.notificationDefaults = Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE | Notification.DEFAULT_LIGHTS; // 設置為鈴聲與震動都要
客戶端需設置消息的類型,即builderId ,當服務端發送對應的類型時,極光會先進行消息類型匹配,若匹配不上,則默認調用應用的圖標,若匹配上,則調用客戶端指定的圖標builder.statusBarDrawable。 2、服務端配置,也是需要設置消息類型builderId,builderId 必須與客戶端的一致 。我們使用java版sdk,其他語言的sdk也可以設置builderId 。 設置關鍵代碼如下:
|
drawable-hdpi 36*36
drawable-mdpi 24*24
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。