【问题标题】:UILocalNotifications algorithmUILocalNotifications 算法
【发布时间】:2015-03-05 11:10:00
【问题描述】:

我在安排 UILocalNotifications 时遇到问题。 我的情况是这样的:当用户选择动机类别时,会出现一个对话框屏幕,他可以在其中选择一天、一周、一个月内应该向他呈现多少次动机信息。然后他选择时间段:一天、一周或一个月。一个动机类别有消息,每个类别都有不同数量的消息。

所以我的问题是:我应该如何安排这些通知?我认为主要问题是可以有不止一个类别。有人可以告诉我该怎么做吗?

我知道我不能安排超过 64 个通知,所以我不能在选择类别时安排所有通知。我知道我可以重新安排通知 application:didFinishLaunchingWithOptions:
application:didReceiveLocalNotification:

我希望我已经清楚我的问题。

【问题讨论】:

  • 我遇到了与您相同的问题,并以相同的方法重新安排了所有通知(保存到数据库)。如果有更好的方法,我会关注帖子。如果没有其他方法可用,您还可以保存通知(时间、消息、类别..)并在重新安排时检查它们。
  • 您目前的设置是什么?你试过什么了?这与回答者有关,因此我们不会通过提供与您的目标不相关的建议来使事情复杂化。它还可以提高工作流程效率,因此我们不会尝试您已经尝试过的事情。同样重要的是要表明您也为此付出了努力

标签: ios objective-c uilocalnotification


【解决方案1】:
  • 先写一个管理本地通知的函数 也就是说,它必须检查是否安排了 64 个通知,如果没有,那么您可以添加一些通知。(您必须很好地处理 DB 部分,例如正确设置标志)

  • 调用application:didFinishLaunchingWithOptions:中的函数,以防某些通知过期或错过

  • 您必须在处理本地通知的所有地方调用该函数。

    1. 用户点击 iOS 8 通知中的自定义操作按钮。

      在这种情况下,iOS 调用 application:handleActionWithIdentifier:forLocalNotification:completionHandler:

      您还可以获得本地通知对象,以便您可以检索处理操作所需的任何信息。

    2. 用户点击警报中的默认按钮或点击应用图标。

      系统启动应用,应用调用其委托的方法,传入本地通知对象 application:didFinishLaunchingWithOptions:

    1. 应用在前台运行时发送通知。

      应用调用 UIApplicationDelegate 方法 application:didReceiveLocalNotification:

Reference1:

Reference2:

我希望这会有所帮助。

如果它不能解决您的问题,请随时提出疑问

【讨论】:

    【解决方案2】:

    当您使用所有可用通知时,它可以作为池,然后您需要重新安排免费通知

    application:didReceiveLocalNotification: 但是每次您要重新安排时间时,您都可以找到可能在今天、明天的下一个通知给用户。每当您在application:didReceiveLocalNotification: 时,找出下一个通知和安排的时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多