你有沒有發現,我們解鎖手機後桌面上App右上角總能看到一個小紅點,這就是推送角標。推送角標指的是移動設備上App圖標右上角的紅色圓圈,圓圈內的白色數字表示未讀消息數量。角標是一種比較輕的提醒方式,通過直觀的展現用戶尚未閱讀的信息數量,可以給用戶營造一種緊張感,激起用戶閱讀的好奇心,從而讓用戶忍不住點 ...
你有沒有發現,我們解鎖手機後桌面上App右上角總能看到一個小紅點,這就是推送角標。推送角標指的是移動設備上App圖標右上角的紅色圓圈,圓圈內的白色數字表示未讀消息數量。角標是一種比較輕的提醒方式,通過直觀的展現用戶尚未閱讀的信息數量,可以給用戶營造一種緊張感,激起用戶閱讀的好奇心,從而讓用戶忍不住點開。因此在使用得當的情況下,推送角標有助於提高App推送打開率,保持用戶粘性。
HMS Core推送服務提供了設置桌面角標的API介面,開發者可以在消息中封裝角標參數。那這個“小紅點”功能是如何實現的呢?以下是詳細的集成步驟。
一.客戶端API設置華為推送角標
支持平臺:
1.系統版本:EMUI4.1 及以上
2.桌面版本:6.3.29
3.支持設備:華為設備
角標功能開發:
- 聲明許可權
< uses - permission android: name = "android.permission.INTERNET" / >
<
uses - permission android: name =
"com.huawei.android.launcher.permission.CHANGE_BADGE " / >
- 在需要進行角標顯示地方,採用如下方法傳遞數據給華為桌面應用。
Bundle extra = new Bundle();
extra.putString("package", "xxxxxx");
extra.putString("class", "yyyyyyy");
extra.putInt("badgenumber", i);
context.getContentResolver().call(Uri.parse("content://com.huawei.android.launcher
.settings/badge/"), "change_badge", null, extra);
關鍵參數說明:
package:應用包名
class:桌面圖標對應的應用入口Activity類
badgenumber:角標數字
boolean mIsSupportedBade = true;
if (mIsSupportedBade) {
setBadgeNum(num);
}
/** set badge number*/
public void setBadgeNum(int num) {
try {
Bundle bunlde = new Bundle();
// com.test.badge is your package name
bunlde.putString("package", "com.test.badge");
// com.test. badge.MainActivity is your apk main activity
bunlde.putString("class", "com.test. badge.MainActivity");
bunlde.putInt("badgenumber", num);
this.getContentResolver().call(Uri.parse("content://com.huawei.android.launcher.settings/badge/"), "change_badge", null, bunlde);
} catch (Exception e) {
mIsSupportedBade = false;
}
}
特殊情形考慮:
(1)對於第三應用打開和退出時,是否還繼續顯示角標取決於應用傳遞的值(badgenumber為0時,不顯示角標;badgenumber大於0時,顯示角標)。
(2)當第三方應用package和class發生變化時,需傳遞該變化後的信息。
(3)在調用角標介面前不一定要事先獲取桌面是否支持角標功能此功能。當桌面不支持角標功能時,介面會拋出異常,應用可以在調用介面的地方加上try … catch(Exception e) 語句以免程式崩潰。
二.HMS Core推送服務sdk桌面角標設置
Push Kit發送下行消息介面中由BadgeNotification的三個參數決定了角標是否顯示以及顯示的數量:
在設置時需要註意以下5點:
1.class欄位應用包名+應用入口Activity類名,如果傳錯角標則無法展示
2.add_num欄位要求emui版本8.0.0以上,推送服務版本8.0.0
3.set_num欄位要求emui版本10.0.0以上,推送服務版本10.1.0
4.打開應用或者點擊、清理通知欄消息並不會清理角標數,需應用在端側參考角標開髮指導去清理角標。
- “class“必填,“add_num”和”set_num”參數選填。
若“add_num”和“set_num”都設置為空,則應用角標數字預設加1
瞭解更多詳情>>
訪問華為開發者聯盟官網
獲取開髮指導文檔
華為移動服務開源倉庫地址:GitHub、Gitee
關註我們,第一時間瞭解 HMS Core 最新技術資訊~