我正在開發一個類似whatsapp的Messenger應用程序,它必須通知服務器該消息已收到,當didReceiveRemoteNotification
被調用時,我正在向服務器發送狀態。但是,當應用程序不在前臺時,它只在用戶點擊通知時纔會調用。即使應用程序處於後臺或未運行狀態,如何進行服務器調用?如何在接收推送通知時進行服務器調用?
回答
要接收遠程通知時,你的應用是在背景或掛起模式首先你的服務器應該叫content-available
= 1來詳細瞭解一下該文件的通知有效載荷發送特殊參數:https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/PayloadKeyReference.html#//apple_ref/doc/uid/TP40008194-CH17-SW5
有了這個參數時,你的應用程序會收到一個推送通知,將被喚醒了一些小的時間到後臺運行模式,並呼籲didReceiveRemoteNotification
。不要忘記在任務結束時調用completionHandler(<some enum parameter>)
,否則您的進程可能會意外死於iOS,例如,當您嘗試執行異步服務器請求時。所以當你的異步方法完成調用completionHandler
閉包參數didReceiveRemoteNotification
。
實際上,當您的應用完全從應用切換器中丟棄時,沒有託管代碼可以運行。據我所知,您應該使用VOIP推送消息來執行操作 - 但這類消息僅適用於帶有語音呼叫的應用程序,如Skype或WhatsApp。即使這些應用程序完全關閉,也需要執行一些代碼。 iOS爲他們準備進行語音通話提供了這種能力。這就是爲什麼所有這些使用者都使用語音通話 - 例如使即時交付狀態。如果你想要這種互動,你應該谷歌更多關於VOIP。但是你的應用程序應該真的有一些語音通話功能,否則它會被應用程序商店拒絕。
肯定的是,如果應用程序被應用程序切換強制退出,您將無法再運行代碼在重新啓動應用程序之前收到通知。 –
- 1. Android如何使用drupal服務器接收推送通知
- 2. 如何在接收推送通知時調用函數?
- 3. 服務器如何知道iPhone是否收到推送通知?
- 4. 在接收推送通知時在背景中調用音頻
- 5. 用Python進行服務器端客戶端推送通知
- 6. 無法從通過應用服務器連接的Firebase接收推送通知
- 7. 服務器和應用程序如何連接推送通知
- 8. 在ios中使用蘋果推送通知服務接收推送通知時出錯
- 9. WP8.1接收推送通知
- 10. 當應用程序關閉時從服務器接收推送通知
- 11. 推送通知不接受在iphone有時從Parse.com服務器
- 12. 如何接收來自其他服務器的數據(例如推送通知)
- 13. 如何在應用程序關閉時接收推送通知?
- 14. 從服務器發送推送通知
- 15. 使用Rails服務器推送通知
- 16. 在服務器推送通知安裝
- 17. iPhone未收到MDM服務器發送的MDM推送通知
- 18. 如何發送fcm推送通知使用goalng fcm服務器
- 19. 在接收推送通知後執行任務
- 20. 如何在Ionic上使用webservice執行推送通知服務?
- 21. 在接收推送通知時在後臺運行javascript函數?
- 22. 如何在iPhone接收到推送通知時
- 23. BB推送通知服務
- 24. 推送通知服務
- 25. Android中是否有推送通知服務,例如Apple推送通知服務?
- 26. 解析推送通知從服務器發送但未被客戶端接收
- 27. WCF Rest服務接收推送通知數據
- 28. 如何從Facebook服務接收我的iPhone應用程序的推送通知?
- 29. 使用Node.js接收推送通知webToolkit
- 30. 用聲音接收推送通知
看看這篇文章。可以給出一個想法。 https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html –