簡體   English   中英

強制退出應用程序在后台模式下的無提示通知

[英]Silent notifications in Background Mode on force-quit apps

我的問題是:當用戶強行退出(滑動)應用程序時,我只是無法使無提示通知起作用!

我猜這是一個事實:靜默推送(具有content-available:1 )將不會觸發application(_:didReceiveRemoteNotification:fetchCompletionHandler:)或任何其他方法(如果應用程序被強制退出,則不會啟動該應用程序) (被刷掉)! 誰能證明這是錯誤的?

我確保已啟用“ 后台模式: 遠程通知”

但是,如果非靜音通知對我不起作用怎么辦? 我需要保持沉默,我需要能夠進行一些檢查,然后再顯示! 收到遠程服務器的通知后,如果我想檢查合適的用戶是否登錄了我的應用程序,該怎么辦? (因為我不能保證他注銷時成功地讓服務器知道它,所以我認為服務器不確定)

在我的情況下應該采取什么正確的方法?

關於相似事物有很多問題,但是涉及的人並不多,我想知道為什么嗎? 我不相信我有這么罕見的情況。 也許我解決此類問題的基本方法是錯誤的? 在Android平台上似乎根本不是問題!

我將FCM用作發送通知的中心點,因此,如果您說PushKit可以解決我的問題,那么可惜FCM不支持VoIP證書。 但是,我想知道,PushKit真的可以解決這個問題嗎? 還是Apple只是這樣設計,當用戶強行退出某個應用程序時,這意味着該應用程序必須完全與它能夠推送遠程通知的功能一起關閉嗎?

我不認為這與Firebase靜默通知的重復操作不會啟動已關閉的iOS應用程序,因為我要問的是,如果您要檢查通知所針對的用戶是否對應於用戶登錄到應用程序? 如果事實證明在iOS平台上絕對沒有解決方案,則可以將其視為重復項。

你問:

還是[剛剛] Apple以這種方式設計了它,即當用戶強制退出某個應用程序時,這意味着該應用程序必須完全關閉並具有推送遠程通知的功能?

是的,這就是它的設計方式。 適用於iOS的應用程序編程指南:了解應用程序何時在后台啟動表示:

在大多數情況下,系統在用戶強行退出應用后不會重新啟動應用。 位置應用程序是一個例外,位置應用程序在iOS 8及更高版本中被用戶強行退出后重新啟動。 但是,在其他情況下,用戶必須明確啟動應用程序或重新啟動設備,然后系統才能將應用程序自動啟動到后台。 在設備上啟用密碼保護后,系統不會在用戶首次解鎖設備之前在后台啟動應用程序。

不可能。 當應用程序處於后台或掛起模式時,您將有30秒的時間執行某些操作。 但是,如果用戶手動殺死應用程序,func didReceiveRemoteNotification將永遠不會調用。

UPD:

當iOS設備收到靜默通知時,系統會在后台喚醒您的應用程序,並調用其應用程序委托的application(_:didReceiveRemoteNotification:fetchCompletionHandler :)方法。 您的應用有30秒的掛鍾時間來執行任何任務並調用提供的完成處理程序。 有關更多信息,請參見處理通知和與通知有關的操作。

暫無
暫無

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

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