每次将UserNotification消息发送给用户时是否可以执行某些操作?
let tdate = Date(timeIntervalSinceNow: 10)
let triggerDate = Calendar.current.dateComponents([.year,.month,.day,.hour,.minute,.second,], from: tdate)
let trigger = UNCalendarNotificationTrigger(dateMatching: triggerDate, repeats: true)
let identifier = "hk.edu.polyu.addiction.test"
let request = UNNotificationRequest(identifier: identifier, content: content, trigger: trigger)
UNUserNotificationCenter.current().removeAllPendingNotificationRequests()
UNUserNotificationCenter.current().add(request, withCompletionHandler: { (error) in
if error != nil {
debugPrint("center.add(request, withCompletionHandler: { (error)")
} else {
debugPrint("no error?! at request added place")
}
})
这是我在用户按下按钮时发出通知的代码。 (即,在10秒之后,通知出现在用户身上。)
即使用户没有按下通知,我也希望更新应用程序的某个变量(假设应用程序位于后台)。
可能的?
或者,只要此通知完成。根据我的应用程序中的一些计算,可能会安排另一个新通知吗? (不固定时间,不能使用重复)
答案 0 :(得分:0)
是的,有可能!需要修改功能:
application:didReceiveRemoteNotification:fetchCompletionHandler:
didReceiveRemoteNotification
调用并打开应用程序,用户将在应用程序中获取最新数据。Apple API参考:
如果未正确配置有效负载,通知可能是 显示给用户而不是传递到您的应用程序 背景。在您的有效负载中,请确保满足以下条件 真:
有效负载的aps字典必须包含内容可用密钥 值为1.有效负载的aps字典不得包含 警报,声音或徽章键。发送静默通知时 对于用户的设备,iOS会在后台唤醒您的应用程序 让它最多运行30秒。