如果用户解雇或忽略第一个通知,如何重复本地通知?

Posted

技术标签:

【中文标题】如果用户解雇或忽略第一个通知,如何重复本地通知?【英文标题】:How to repeat local notification if user dismisses or ignores first one? 【发布时间】:2016-08-30 17:18:36 【问题描述】:

我正在使用 Swift 开发一个警报应用程序。当应用程序处于后台时,如果用户忽略或关闭第一个通知而不对其采取任何操作,我想继续重复本地通知(由用户安排)。我怎样才能做到这一点?我已经在通知上设置了贪睡和停止操作,并且可以确定用户是否对其中任何一个采取了行动。任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

你可以试试这个

    为本地通知设置唯一 ID 根据您的逻辑触发本地通知时 跟踪您触发的通知 ID 在您的application:handleActionWithIdentifier:forLocalNotification:completionHandler 检查该通知的 ID 这样您的通知已被取消,因此您可以稍后再次触发它

【讨论】:

但是只有当用户对通知采取行动时,我才会使用它来获取标识符信息。如果用户没有点击任何操作,那么我将不会在此处获得任何信息。 对,如果通知被解除,苹果不会提供任何回调,苹果故意让这变得困难,因为用户已经明确表示他们不想与你的通知交互。所以黑客将把当您的应用进入前台或再次启动时,检查以确定哪些通知被触发但被用户关闭。 我需要在用户采取任何行动或应用程序进入前台之前继续触发通知,否则警报应用程序将失去其功能。你能提出任何其他逻辑吗? 在这种情况下没有任何回调,我觉得这是一个障碍 但是我在 App Store 中看到很多报警应用都做到了。【参考方案2】:

我通过阅读许多在线文章以及与其他 ios 开发人员讨论找到了解决方案,唯一的解决方案是在 30 秒间隔后安排重复通知,希望用户最终会采取行动。一旦用户点击任何操作,我们就可以识别标识符并继续我们的逻辑。我希望这可以帮助许多寻找类似问题答案的开发人员。

【讨论】:

以上是关于如果用户解雇或忽略第一个通知,如何重复本地通知?的主要内容,如果未能解决你的问题,请参考以下文章

工作日本地通知未触发

iOS 后台获取本地通知

如何避免iOS中的重复通知?

本地通知 - 重复间隔/自定义时间不起作用

如何在iphone中获取推送通知[重复]

如何检测用户是不是采取了本地通知或远程通知的操作?