2016-09-21 37 views
0

在我的應用程序中,用戶可以加入遠程事件。當用戶加入事件時,我在本機iOS日曆中創建一個事件。我知道我可以在應用程序運行時從我的應用程序編輯和刪除該事件。當應用程序處於後臺或終止模式時編輯日曆事件

現在我有要求編輯或刪除基於推送通知的上述提及事件。這意味着,當遠程事件發生變化時,我的應用會收到推送通知。所以,我想知道,我可以編輯或刪除本機日曆事件時收到推送通知(它可以是應用程序在後臺運行或死亡)。

+0

您是否嘗試過推送套件? – Hasya

+0

@Hasya我曾閱讀過有關推送工具包,但它超出了我的項目範圍 – sajaz

回答

0

使用APN(而不是PK),您需要在應用程序的權利中啓用後臺通知。在有效載荷的aps字典中發送content-available : 1的通知。實現新的(er)委託方法來處理應用程序委託中的通知後臺處理。祈禱iOS選擇在後臺運行應用程序的次數足以讓該功能不會感覺有問題。

當您的應用程序處於後臺或未運行時,您無法獲得足夠的處理時間。通知可以提供幫助,但Apple明確表示沒有保證。 iOS不會啓動應用程序來處理通知的一種已知場景是,應用程序最近被用戶殺死(在任務切換器中向上滑動)。

推送套件消息保證在後臺喚醒或啓動應用程序,但應用程序必須是VoIP應用程序才能使用它們。另外,如果您走這條路線,請注意,您的應用在直接在後臺啓動時的行爲會有所不同。您不能認爲發佈會始終以Active狀態的應用結束。

+0

我已經在後臺模式下啓用了遠程通知。但根據你的回答,我明白應用程序應該喚醒,以便完成後臺進程,並且不保證會發生。另外,這意味着當應用程序被殺害時我無法做到這一點。另外,該應用程序如何在後臺運行,但手機已鎖定。 – sajaz

+0

如果該應用程序被殺害,可以啓動它來處理通知。或者它可能不會。我不知道當設備被鎖定時事件API是否可用。我熟悉相關概念,但不瞭解細節。 – Avi

0

是的,你可以編輯和刪除。當你沉默推送通知你的應用程序在後臺調用。即使我們也可以使用SQLite數據庫進行活動。

所以一旦你沉默推送通知,然後你安排本地通知並通知用戶。您的應用程序將調用您的本地通知播放聲音(最長30秒)。

當用戶點擊本地通知或本地通知按鈕時,您還可以執行進一步的UI和邏輯相關的事情。

如果您保留您的本地通知對象NSUserDefault,那麼如果您的設備重新啓動仍然可以從NSUserDefaultdidFinishLaunchingWithOptions本地通知對象,並做更多的事情。

相關問題