是否有可能在iOS中從服務器獲取推送,然後運行方法而不顯示通知?例如,檢查現在是否爲配置的時間,以及是否顯示通知,以及是否不向服務器發送不可用的消息。iOS:推送運行方法而不顯示通知
回答
是的,這是可能的:
確保爲遠程註冊通知,請參閱documentation here:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)]; return YES; }
還要確保編輯
Info.plist
並檢查「啓用背景模式」和‘遠程通知’複選框:此外,還需要添加
"content-available":1
到您的推送通知的有效載荷,否則,如果它在後臺應用程序將不會被喚醒(見documentation here) :對於推送通知來觸發下載操作時, 通知的有效載荷必須包括其設置爲1 價值的內容可用密鑰。當該密鑰存在時,系統將 背景中的應用程序(或將其啓動到後臺)並調用應用程序 委託人的 應用程序:didReceiveRemoteNotification:fetchCompletionHandler: 方法。你的實現該方法的應該下載 相關內容並將其集成到你的應用程序
所以有效載荷至少應該是這樣的:
{ "aps" = { "content-available" : 1, "sound" : "" } }
剛剛離開的聲音特性空和忽略警報/ text屬性和通知將沉默。
不幸的是,應用程序將不會被喚醒,如果它沒有運行在所有(強制退出),請參閱this answer。
是的,你要尋找的是silent push notification
s其中獲得了introduced in iOS 7。看看docs regarding push notifications哪個狀態:
aps字典也可以包含
content-available
屬性。content-available
屬性的值爲1
可讓遠程通知充當「無聲」通知。當無聲通知到達時,iOS會在後臺喚醒您的應用程序,以便您可以從服務器獲取新數據或進行背景信息處理。用戶不會被告知由靜默通知產生的新信息或更改的信息,但他們可以在下次打開您的應用程序時瞭解它。
和
content-available
-number
- 提供值爲1的這個關鍵,以表明有新內容可用。包括這個鍵和值意味着當你的應用程序在後臺啓動或恢復時,調用application:didReceiveRemoteNotification:fetchCompletionHandler:
。 (書報亭應用,保證能夠接收至少一個推,每24小時的窗口此鍵。)
然後,您可以反應因此,最終竟引發另一個通知,如果你覺得用戶需要被告知某事(儘管對此不是100%肯定)。
更深入一點的信息和代碼可以找到in this objc.io post。
- 1. iOS推送通知顯示
- 2. ios推送通知總是不顯示
- 3. 推送通知未顯示
- 4. 顯示推送通知
- 5. 推送通知IOS
- 6. 推送通知IOS
- 7. iOS推送通知 -
- 8. iOs推送通知
- 9. iOS - 推送通知:它是否總是顯示通知
- 10. PubNub推送通知將不會顯示
- 11. 推送通知有時不顯示
- 12. 自定義推送通知不顯示
- 13. 離子推送通知不在通知欄上顯示通知
- 14. 推送通知不是Android的運行
- 15. 推遲顯示推送通知警報
- 16. 推送通知不顯示2kb在ios 9
- 17. Swift - GCM:不顯示iOS遠程推送通知
- 18. IOS應用程序在後臺不顯示推送通知。 Swift
- 19. iOS:遠程推送通知顯示按鈕標題而不是值的鍵
- 20. ios 9推送通知不顯示,而應用程序打開時
- 21. 增加應用徽章數量而不顯示推送通知
- 22. 當應用運行時顯示從推送通知彈出
- 23. 推送通知不調用方法
- 24. iOS GCM通知發送,但不顯示
- 25. 的iOS:推送通知未顯示在iOS的10
- 26. Phonegap iOS推送通知示例
- 27. iOS手機的差距 - 推送通知不顯示通知服務警告框
- 28. 通過JavaPNS的iOS推送通知 - 未顯示徽章號碼
- 29. 推送通知不顯示自定義通知
- 30. IOS本地推送通知
我不能讓它工作,當應用程序處於非活動狀態(未激活),它的工作原理? – RCB
@RCB有你能在'背景Modes'了'背景fetch'和'遠程Notifications'? – luk2302
@RCB [the docs](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplicationDelegate_Protocol/index.html#//apple_ref/occ/intfm/UIApplicationDelegate/application:didReceiveRemoteNotification:fetchCompletionHandler: )提供更多的信息,你需要做什麼以及在什麼情況下工作: – luk2302