我一直在这些论坛和其他网站上,我不断得到一些不加分的答案。基本上,我想创建一个通知,例如每个工作日在上午6:28,下午12:28和下午5:28发布。
我有一些解决方案,但我真的不确定去哪里。我是否正确地设置了这个?任何帮助表示赞赏。
let notification: UILocalNotification = UILocalNotification()
notification.category = "News and Sports"
notification.alertAction = "get caught up with the world"
notification.alertBody = "LIVE news and sports on VIC in just a minute!"
UIApplication.sharedApplication().scheduleLocalNotification(notification)
答案 0 :(得分:7)
准备显示本地通知需要两个主要步骤:
在iOS 8+上,您的应用必须询问并随后被用户授予显示本地通知的权限。可以在AppDelegate中按如下方式获得许可。
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
...
if #available(iOS 8, *) {
application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [.Sound, .Alert, .Badge], categories: nil))
}
return true
}
当您的应用在iOS 8之前的操作系统上运行时,请勿致电registerUserNotificationSettings(_:)
。否则,您的应用程序将在运行时崩溃。幸运的是,这应该不是问题,因为您正在使用Swift 2。
将来安排通知fireDate
。
let notification:UILocalNotification = UILocalNotification()
...
... // set the notification's category, alertAction, alertBody, etc.
...
notification.fireDate = ... // set to a future date
UIApplication.sharedApplication().scheduleLocalNotification(notification)
不幸的是,根据this Stack Overflow answer @progrmr,
您无法使用UILocalNotification设置自定义重复间隔。之前已经问过这个问题(见下文)但是 仅提供有限的选项。 repeatInterval parameter specific values 是一种枚举类型,仅限于posted here。
您不能将这些枚举相乘并得到它们的倍数 间隔。您不能设置超过64个本地通知 你的应用。除非通知,否则您无法重新安排通知 用户选择在通知触发时运行您的应用程序(他们可能会 不运行它)。
请求重复间隔乘数{{3}}。 您可以为其添加注释。我建议提交错误报告或功能 请求(网址?)与Apple。
许多其他Stack Overflow答案都会在上面的引号中确认声明。访问完整引用答案的链接,其中包含支持答案列表。
您的案例的潜在解决方法是安排3个本地通知。将每一个分别设置为分别在上午6:28 AM,下午12:28和下午5:28开火。然后,将所有3个本地通知的repeatInterval
设置为.CalendarUnitWeekday
。