[英]1 hour gap in push notifications android
我想在推送通知中設置 1 小時的間隔,比如當用戶收到一個通知時,我想將時間存儲在 Shared Preferences 中,當下一個通知到來時,我想檢查兩個通知中的間隔是否等於或大於1 小時后,我將向用戶顯示通知,否則不會向用戶顯示通知。 所以問題是我如何計算1小時的時間差。 請幫我。 提前致謝。
我的一個項目有同樣的要求。
您絕對可以使用WorkManager
做到這一點。
對於這個解釋,
我假設您使用的是 Firebase 雲消息傳遞 (FCM)
流動:
POST
端點( https://fcm.googleapis.com/fcm/send )。onMessageReceived()
並驗證RemoteMessage
是否具有有效數據且不是 null。 從RemoteMessage
object 中獲取數據,如下所示:val data = remoteMessage.data
val title = "msg_title"
val message = "msg_body"
if (data.containsKey(title) && data[title]?.isNotEmpty() == true &&
data.containsKey(message) && data[message]?.isNotEmpty() == true) {
// Fire the WorkManager here with a One Hour Initial Delay.
}
OneTimeWorkRequest
實例(檢查 WorkManager 文檔)並將其分配給 WorkManager。Workmanager.getInstance()
.enqueueUniqueWork("unique_work", ExistingWorkPolicy.REPLACE,
OneTimeWorkRequest.Builder(NewStickerWorker::class.java)
.setInitialDelay(1, TimeUnit.HOURS)
// Send notification details to OneTimeWorkRequest
.setInputData(Data.Builder()
.putString("title", data[title])
.putString("message", data[message])
.build())
.build()
)
在您的自定義Worker
中,通過inputData.getString()
獲取通知title
和message
並簡單地顯示通知。
要發送有效負載消息,
在Postman
或您想要的任何應用程序中創建如下所示的data
有效負載:
{
"to":"/topics/YourTopic",
"data":{
"msg_title":"Notifications Title",
"msg_body":"Some awesome notification message body",
"priority" : "high",
"sound" : "default"
}
}
FirebaseMessaging
API 在您的應用程序中訂閱Topic
,並替換YourTopic
有效負載中的 YourTopic。 注意:這里不使用儀表板發送消息的原因是因為如果應用程序在background
,那么 Android 系統通知托盤會立即顯示通知,這不是我們想要的。
因此,當您使用data
有效負載時,
即使應用程序處於background
或foreground
,也可以保證調用您的應用程序的onMessageReceived()
。
推送通知被擊中和 go。 因此,如果您想制定一個必須通過服務器端集成維護的時間表,您可以在 1 小時后或根據您的需要安排通知。
或者您可以通過隊列處理這些特定事件,然后在需要時對其進行處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.