我一直试图在一个特定的时区在IOS上安排一个UILocalNotification,而不管用户当前的位置在哪里。我需要介绍的三种情况是
上显示一周一次的通知(即星期日、星期一等)。
我尝试解决第一种情况,但将通知安排在两分钟后出现,时区设置为Pacific/Auckland。作为背景,我在悉尼,奥克兰在两个小时前。因此,假设悉尼的当前日期和时间是2020年2月4日下午8:00,我将使用NSDateFormatter解析一个字符串,即" 2020 -04-02T22:02“,并将格式化程序的时区也指定为Pacific/Auckland。然后,将该日期传递给UILocalNotification的fireDate属性,并指定timeZone属性。我可以看到,在UTC中,这是正确的时间。然而,我发现通知不会在两分钟后启动。我是遗漏了什么,还是在使用旧的UILocalNotification API可以做什么方面存在缺陷/限制?我发现,如果我安排了一个通知,即在传递前一分钟,但在奥克兰时间,它会立即开火。
发布于 2020-02-04 09:35:23
尝试这一次,以便在一天中的特定时间安排本地通知
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
let settings = UIUserNotificationSettings(forTypes: .Badge, categories: nil)
UIApplication.sharedApplication().registerUserNotificationSettings(settings)
let localNotification1 = UILocalNotification()
localNotification1.alertBody = "Your message"
localNotification1.timeZone = NSTimeZone.defaultTimeZone()
localNotification1.fireDate = self.getEightAMDate()
UIApplication.sharedApplication().scheduleLocalNotification(localNotification1)
let localNotification2 = UILocalNotification()
localNotification2.alertBody = "Your message"
localNotification2.timeZone = NSTimeZone.defaultTimeZone()
localNotification2.fireDate = self.getSevenPMDate()
UIApplication.sharedApplication().scheduleLocalNotification(localNotification2)
return true
}
func getEightAMDate() -> NSDate? {
let calendar: NSCalendar! = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)
let now: NSDate! = NSDate()
let date10h = calendar.dateBySettingHour(8, minute: 0, second: 0, ofDate: now, options: NSCalendarOptions.MatchFirst)!
return date10h
}
func getSevenPMDate() -> NSDate? {
let calendar: NSCalendar! = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)
let now: NSDate! = NSDate()
let date19h = calendar.dateBySettingHour(19, minute: 0, second: 0, ofDate: now, options: NSCalendarOptions.MatchFirst)!
return date19h
}https://stackoverflow.com/questions/60053867
复制相似问题