切换启用/禁用本地通知(swift 4)

Posted

技术标签:

【中文标题】切换启用/禁用本地通知(swift 4)【英文标题】:Switch to enable/disable local notifications (swift 4) 【发布时间】:2018-11-05 12:13:26 【问题描述】:

我正在制作一个 Todo 应用程序,并且应该在应用程序设置内部有一个切换按钮来启用/禁用所有本地通知。

我尝试了 removeAllPendingNotificationRequests() 方法,但它完全删除了所有通知,我想保持它们的计划但不做任何事情。有可能吗?

非常感谢

【问题讨论】:

一旦通知权限被授予。 Y 用户,用户可以更改您的应用程序的设置。您唯一可以以编程方式执行的操作是安排或不安排通知。根据用户的设置发送预定通知 谢谢,我什至不知道有两个地方可以打开和关闭通知是否是个好主意,看起来有点乱。我只会将用户重定向到设置页面。 【参考方案1】:

您无法从应用更改通知设置,但您可以将用户导航到您的应用设置,以便他们更改通知设置

if let aString = URL(string: UIApplicationOpenSettingsURLString) 
            UIApplication.shared.open(aString, options: [:], completionHandler:  success in
                SlideNavigationController.sharedInstance().closeMenu 

                
            )
        

【讨论】:

谢谢,好主意 :) 在我看来这是最干净的处理方式。【参考方案2】:

据我了解,您需要禁用通知请求,但保存它们以防用户重新启用开关。对吗?

在这种情况下,您可以将所有待处理的通知保存为数据库(或文件等)中的一些自定义数据实体,然后通过调用 removeAllPendingNotificationRequests() 将其删除。

如果用户重新启用开关,您需要从本地保存的数据实体重新创建通知请求。

【讨论】:

是的,没错。谢谢你的想法,我会试试的。虽然我认为这会有点混乱,因为当用户再次启用通知时,许多请求将不再有效。

以上是关于切换启用/禁用本地通知(swift 4)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 中禁用/启用本地通知?

在 iPhone 上确定用户是不是启用了本地通知

如何暂时禁用我的 iPhone 应用程序安排的所有本地通知?

iOS - 根据切换值启用/禁用一组通知

使用前台应用程序检测本地通知的点击,swift 4

持久本地通知 iOS