簡體   English   中英

推送通知徽章自動增加

[英]Push-Notification Badge auto increment

我一直在為我的應用程序實施推送服務,我一直在考慮應用程序的徽章。 我的應用程序是一個郵件應用程序(sorta),我想通過推送通知用戶將新消息添加到收件箱中,我希望徽章 = 收件箱中的新消息數。

我想在服務器端(提供商)檢查新消息並將號碼作為徽章發送。

問題是:有沒有辦法自動增加應用程序的徽章,而不必計算服務器端的徽章值,然后將其作為推送有效載荷的一部分發送到 APSN?

也許有一種方法可以在 JSON 徽章字段中發送一些諸如“++”之類的變量。 任何黑客? 還是我需要使用服務器端的計數系統?

不,你必須在服務器端跟蹤這個。 如果您不包含任何徽章值,它將被完全刪除。

當然,這只是在用戶收到通知並且應用程序未運行/他們選擇不啟動它的情況下。 如果用戶啟動了應用程序或已經運行了它,你可以做任何你想做的關於遞增的事情。

2014 年 3 月更新:有關可能的更新,請參閱評論。 我已經好幾年沒有做過推送了,所以我自己也無法驗證這一點。

這是可能的,但需要權衡。

您始終可以將未讀總數作為附加 JSON 值作為推送有效負載的一部分發送(推送會忽略它沒有明確理解的鍵)。 用戶打開應用程序后,讀取值並通過 UIApplication 的applicationIconBadgeNumber屬性自己以編程方式調整徽章。

這樣做的問題是,即使用戶沒有打開應用程序(即,當他們收到通知並且用戶點擊“取消”而不是“查看”時),推送也會調整徽章值。 在這些情況下,您的徽章不會改變,但是一旦他們運行應用程序(如果他們點擊“查看”),那么您的應用程序就可以將其設置正確。

現在可以讓客戶端使用 UNNotificationServiceExtension 自動增加徽章。

擴展能夠在 iOS 顯示之前修改通知負載。 總之,在 UserDefaults 中存儲一個徽章計數器並根據需要修改通知的徽章計數。 您需要添加應用程序組功能以共享用戶默認值。

這是詳細的分步指南: https : //prodocs.cometchat.com/docs/ios-increment-app-icon-badge-count

您可以嘗試 App42 后端服務,這些服務提供在服務器端維護的推送徽章計數的自動遞增。 有關更多詳細信息,您可以關注博客的鏈接。 以下是博文內容:

以下是可以通過 App42 推送通知中的自動遞增徽章計數來實現的少數用例。

要使推送徽章自動增加 1,您需要發送推送消息,如下所示。

PushNotificationService pushNotificationService = App42API.BuildPushNotificationService (); // Initializing PushNotification Service.
string userName = "UserName";
string message= "{'badge':'increment'}";
pushNotificationService.SendPushMessageToUser(userName,message, new UnityCallBack())

注意:所解釋的示例適用於 Unity/C#,但同樣的過程也適用於其他人。

如果您想為徽章規定任何數量或希望將徽章計數減少到零,您可以使用此方法在用戶單擊通知時更新計數。 在這種情況下,您必須調用 updatePushBadgeforDevice 或 updatePushBadgeforUser。

PushNotificationService pushNotificationService = App42API.BuildPushNotificationService (); // Initializing PushNotification Service.
string userName = "UserName";
string deviceToken = "DeviceToken";
int badges = 10; // For clear count make it 0 
pushNotificationService.UpdatePushBadgeforDevice(userName, deviceToken, badges,  new UnityCallBack());

PushNotificationService pushNotificationService = App42API.BuildPushNotificationService (); // Initializing PushNotification Service.
string userName = "UserName";
int badges = 10; // For clear count make it 0
pushNotificationService.UpdatePushBadgeforUser(userName, badges,  new UnityCallBack());

updatePushBadgeforDevice – 此方法用於更新用戶注冊的特定設備的推送徽章計數。

updatePushBadgeforUser – 此方法用於更新用戶采購的所有設備的推送徽章計數。 在這種情況下,我們假設用戶在其名下注冊了多個設備。

為徽章計數發送+1 ,這將使徽章計數自動增加 1。

暫無
暫無

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

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