2 回答

TA貢獻1966條經驗 獲得超4個贊
它們可用于在不通知用戶的情況下通知新內容的應用。應用程序將在后臺喚醒(如果用戶強行退出,iOS不會自動啟動您的應用程序),而應用程序:didReceiveRemoteNotification:fetchCompletionHandler:將被調用,而不是顯示通知警報 。然后,您有機會以透明方式處理用戶的任何信息:
下載一些內容
同步一些元素,
當用戶打開它時,直接在應用程序內通知用戶
請注意,您的時間限制為30秒。
配置靜默通知
要支持靜默遠程通知,請將remote-notification值添加到Info.plist文件中的UIBackgroundModes數組。要了解有關此數組的更多信息,請參閱UIBackgroundModes。
<key>UIBackgroundModes</key><array> <string>remote-notification</string></array>
配置無提示通知
aps字典還可以包含content-available屬性。值為1的content-available屬性允許遠程通知充當靜默通知。當無聲通知到達時,iOS會在后臺喚醒您的應用程序,以便您可以從服務器獲取新數據或進行后臺信息處理。用戶不會被告知由靜默通知產生的新信息或更改信息,但他們可以在下次打開您的應用時找到相關信息。
對于靜默通知,請注意確保aps字典中沒有警報,聲音或徽章有效負載。如果您不遵循此指南,則可能會限制配置不正確的通知,并且不會在后臺傳遞給應用程序,而是向用戶顯示而不是靜默

TA貢獻1810條經驗 獲得超4個贊
當您發送靜默推送通知并且應用程序被暫停時,系統會在調用方法之前喚醒或啟動您的應用程序并將其置于后臺運行狀態,但如果應用程序被用戶手動終止,則它將不會被喚醒。
應用:didReceiveRemoteNotification:fetchCompletionHandler:
當您發送靜默推送通知并且您的應用程序有最多30秒的掛鐘時間來執行下載或任何其他類型的操作并調用指定的完成處理程序塊時,將調用此方法。如果未及時調用處理程序,您的應用程序將被暫停。
如果要發送靜默推送通知,則通知負載應如下所示:
{ "aps" = { "content-available" : 1, "sound" : "" }; // You can add custom key-value pair here... }
- 2 回答
- 0 關注
- 793 瀏覽
添加回答
舉報