2017-02-08 51 views
1

我正在製作一個向用戶發送每日通知的「健康」應用程序。每天通知的數量取決於當天(例如第一次使用的第2天),而「健康」行使時間也取決於當前日期(在該時間之後,我發送另一通知以通知用戶練習結束)。當應用程序被殺時設置每日本地通知

知道我們不能計劃超過64個通知我嘗試了以下方法:1.設置當天和第二天的通知,當用戶選擇它的應用程序參數時,然後2.每天通過後臺提取程序設置通知不管多久,只要每天至少一次)。

但是,這不起作用,就好像用戶從多任務列表中殺死應用程序,後臺獲取將不會執行。

無論如何計劃我的「第二天」通知,而不強迫用戶打開應用程序來這樣做嗎?這個想法是,用戶可以按照程序,而不必每天都打開應用程序。

我已經看到,無聲推送通知(是否允許運行代碼,而無需打開應用程序?)或pushkit可以做到這一點,但我的應用程序不是一個VoIP應用程序,因此可能被拒絕...

有沒有人有解決這個問題的辦法?

非常感謝您的回答。

+1

對於靜默通知,您不需要pushKit。請參閱:http://stackoverflow.com/questions/39625687/apple-rejection-after-implementing-silent-notifictaions-with-pushkit – shallowThought

回答

1

您不需要VoIP發送靜默推送通知。 VoIP應用程序確實有無聲的推動,它們比常規的無聲推送「優越」,因爲即使用戶已經殺死了應用程序,它們也會被傳送到應用程序,而不是常規的無聲推送。

無聲推的缺點是,有幾種情況時,它不會被提交到App: - 用戶可以禁用它們 - 用戶已終止應用程序 - 有一個漫長的活躍電話在推送到 的時刻 - 該設備可能處於脫機狀態 - 等等,等等

因此無聲推不能用於確保你的應用程序每天運行。

就你而言,因爲它最終是被通知的用戶,服務器是否可以發送用戶指向的推送給他們?我的意思是服務器可能有可用的信息來知道要將哪些內容放入通知內容中? (即使用戶已終止應用程序,用戶定向推送仍會傳送給用戶)。

如果服務器沒有這個信息,那麼要考慮的另一件事是推送擴展。 推送擴展功能可以截取用戶控制的推送,並在其顯示給用戶之前更改/更新其內容。通過這種方式,即使應用程序已終止,但您仍然可以確保每天向用戶顯示推送通知(儘管仍然受到用戶可以禁用應用程序通知的事實的影響)。 雖然這可能會很棘手,因爲推送擴展程序不是您的應用程序的完整部分,而是它的獨立部分,儘管應用程序和擴展程序可以共享底層數據(如果其存儲在組中)。

所以每天你的服務器可以發送用戶定向推送

,這得到您的擴展攔截,你的擴展運行,並確定了推動的內容是什麼,然後推送顯示給用戶。

這些是一些選擇,不能說如果任何對你來說是正確的,只要你知道你的要求的確切細節。

+0

感謝@GruntCakes爲您的答案,這是非常明確的。內容非常直接,所以服務器可能會有這些信息。在這種情況下,服務器也需要得到關於天信息,因爲用戶是到健康計劃在合適的時間來調度推送通知的時間/正確的號碼。我會嘗試!蘋果不允許每天運行一些代碼,例如在帶有鬧鐘的Android上,這是非常糟糕的... – CharlyStudio

0

反正是有計劃我「第二天」的通知,而不強迫用戶打開應用程序這樣做

不是沒有涉及以某種方式的用戶。如果您可以確保每天至少有在通知提醒上點擊,您的應用可以被召喚(不一定在前臺),並且可以運行代碼作爲迴應。

否則,只有試圖確保您的應用程序每天運行的方式是推送通知(因爲衝動來自您的服務器,它始終運行)。當然,即使這也不是100%肯定的。

相關問題