【问题标题】:How to detect when user clears your app's notification如何检测用户何时清除您应用的通知
【发布时间】:2015-07-31 00:58:58
【问题描述】:

我的应用有通知功能。当我收到通知时,我会在我的应用图标中显示一个徽章。

据我所知,当我的应用程序处于后台时,由于用户没有点击通知中心的通知,因此我的应用程序不知道它有通知。所以不能更改徽章编号。

同样来自这个话题: Detect when a user clears notification from the notification center

如果用户清除应用程序的通知,应用程序将无法检测到它。

所以问题就在这里:
- 我的应用在后台
- 用户收到与应用相关的通知
- 应用程序在应用程序的图标上添加一个编号为 1 的徽章
- 用户从通知中心删除通知
- 应用永远不会理解通知已被删除,因此它可以删除徽章!!!

那么其他应用程序如何解决此问题?有什么解决办法吗?

【问题讨论】:

  • 无法检查用户是否删除了通知。
  • 那么当用户从通知中心清除通知时,我怎样才能删除徽章,其他应用程序如何做到这一点?也许我的机制不好
  • 您能否提供应用程序的名称,即使应用程序在后台,也会清除徽章编号
  • 当用户从通知中心删除通知时,这并不意味着您的应用程序已经处理了通知 - 这意味着用户不想在通知中心看到您的通知,但您的应用程序仍然有新的通知;不需要把这两个东西混在一起。
  • 当用户从通知中心删除通知时,超出了实际应用的范围;同时,用户看到通知(如果文本很长,他们只看到部分)并且不与通知交互,他们可以将其删除——这种情况不等于当您在应用程序中将通知处理为 deleting i> 通知不等于激活它。

标签: ios objective-c iphone notifications badge


【解决方案1】:

无法检查用户何时清除您应用的通知。

清除应用程序徽章的通常做法是当用户查看了您的应用程序中的适用内容(例如消息应用程序中的消息),或者在用户下次打开您的应用程序时清除徽章(如果不是这样)适用,或者您无法轻松分割通知并将它们连接到应用中的可见内容。

注意:你不应该依赖用户点击你的通知来获取他们的内容。如果您的用户没有点按您的通知,那么您的应用将无法找到它的内容,或者它曾经存在过。

相反,当您的应用打开时,它应该连接到您的服务器以下载更新的内容,然后您可以根据需要使用这些完整、准确的信息来更新您的应用徽章。不要尝试从通知中获取内容。

【讨论】:

  • 据我所知,当应用程序在后台运行时,直到用户点击通知,我才能获得它们的内容。因此,当我的用户访问我的消息页面时,我不相信该应用程序有任何未读通知;因此,如果我将徽章计数设置为零并且用户在通知栏中有一些通知,那就没有意义了
  • @HuseinBehbudiRad 您可以暂时将其设置为 0,直到您可以加载内容并确定徽章实际应该是什么,然后更新它。
  • 这是个好主意,请您指定如何确定徽章编号应该是什么?以便我可以更新它?谢谢。
  • @HuseinBehbudiRad 这取决于您的应用程序的工作方式。如果您有一种方法可以确定在应用打开后用户还没有看到哪些 内容,请使用它。否则,只需将徽章设置为零。
  • 是否可以将徽章设置为零但通知仍保留在通知中心?
【解决方案2】:

您可以在通知中添加自定义操作:“标记为已读”或“删除”。删除-application:handleActionWithIdentifier:... 方法中的徽章。

是的,它不允许您检测用户是否清除了通知。但是没有任何方法可以做到这一点。所以我建议一个解决方法来解决这个问题。

【讨论】:

  • 这不处理用户使用系统清除按钮清除所有应用程序通知的情况,这就是问题所在。大多数用户永远不会注意到您添加了一个特殊的删除按钮,并且无论如何都会使用系统清除按钮将其清除,所以这个答案没有帮助。
  • 是的,它并没有完全按照作者的要求做,但那又是什么呢?
猜你喜欢
  • 1970-01-01
  • 2015-10-06
  • 1970-01-01
  • 1970-01-01
  • 2012-01-30
  • 2021-09-26
  • 2015-08-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多