2017-02-06 88 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​​将通知设置发送到外部服务器,并停止将特定通知发送给客户端。但是,是的,取消/停止特定通知的逻辑必须写在服务器上。

希望这可以帮助你。