2017-02-06 87 views
0

我開發了一個與Swift for IOS 10.2應用程序。我使用Apple推送通知從服務器。在這個應用程序中,我使用UserDefaults進行用戶設置。
我希望如果用戶想要收到當天的新聞,我的應用程序允許顯示新聞類別的推送通知。因此,我可以在向用戶顯示之前管理推送通知嗎?
我必須將設置保存在服務器上嗎?任何建議?謝謝。Swift取消推送通知顯示前

+0

如果您想阻止在用戶禁用來自您設置頁面的通知時顯示通知。也許你可以使用共享UIApplication中的unregisterForRemoteNotifications方法?這將防止通知出現即使服務器發送它們。您可以在applicationDidFinishLaunching方法中添加邏輯以檢查用戶是否應該註冊 – DatForis

回答

0

Apple在iOS 10中引入了通知服務擴展。您可以使用此擴展來修改由APNS發送的通知的內容。此擴展程序允許您在向用戶顯示之前下載圖像/視頻/ gif內容,或修改通知內容(如標題,副標題,說明)。但是,您將不被允許完全取消通知。

雖然如果您在Suite UserDefaults中保存通知設置(通過使用AppGroups),您可以訪問通知服務擴展中的這些設置,並且在從設置中讀取設置後,您可以將通知內容更改爲常規通知並使用API​​將通知設置發送到外部服務器,並停止將特定通知發送給客戶端。但是,是的,取消/停止特定通知的邏輯必須寫在服務器上。

希望這可以幫助你。