静音 UILocalNotifications 发送一段时间

Posted

技术标签:

【中文标题】静音 UILocalNotifications 发送一段时间【英文标题】:Mute UILocalNotifications sending for a certain time 【发布时间】:2016-02-09 10:16:02 【问题描述】:

每当用户接近我客户的其中一家商店时,我的应用都会通知(使用UILocalNotification)用户,即使在后台也是如此。

我有一个静音按钮,当用户单击该按钮时,会弹出一个 actionSheet 并询问他希望将应用程序静音多长时间(5 小时、24 小时、1 周或 1 个月)。

当用户选择其中一个选项时,我希望应用停止发送通知,直到这个时间过去。

最好的方法是什么?

我会非常感谢一个代码示例。

谢谢!

【问题讨论】:

你试过什么?既然您的应用程序必须生成通知,为什么不计算静音期的到期并存储它。在生成新通知之前,请根据存储的日期检查当前日期。 @Avi 你能给我一个代码示例吗?也许我会更了解它 哪个部分比较难?存储日期以供将来比较?生成日期?比较日期?你甚至没有给我们任何代码来查看。 @Avi 谢谢你的回答我现在明白你的意思了。但我在 actionSheet 中还有一个选项,即在用户从应用程序手动取消静音之前不会发送通知。我该怎么做? 【参考方案1】:
//fire local notification 

    NSDate * storedDate // Store your date when setting the mute 
    int tillHoursForMute // hours for mute

    muteDate  = <storedDate+tillHoursForMute> //concatenate the hours into date
   if ([muteDate compare:firingDate] == NSOrderedDescending && [muteDate compare:firingDate] == NSOrderedAscending) 
    //fire Notification        

    else 
      //Mute time

      

注意:刚刚写了步骤,根据语言情况更改它。

【讨论】:

这真是可怕的伪代码,因为你不应该那样比较日期。 让他处理各自的编码 将该选项存储为布尔值(NSUserDefaults 是个好地方)。如果设置了该值,则不要创建通知,如果没有过期日期。 ***.com/questions/3841166/… 非常感谢!

以上是关于静音 UILocalNotifications 发送一段时间的主要内容,如果未能解决你的问题,请参考以下文章

获取现有 UILocalNotifications 的列表并修改其日期

UILocalNotifications 和 applicationIconBadgeNumber 的良好模式

如何将 UILocalNotifications 添加到数组 [关闭]

UILocalNotifications 在卸载/更新后是不是仍然存在?

检测未确认的 UILocalNotifications

关闭应用程序后禁用 UILocalNotifications