1

每次将 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 秒后,通知出现在用户面前。)

即使用户没有按下通知,我也希望更新应用程序的一些变量(假设应用程序在后台)。

可能的?

或者,只要完成此通知。根据我的应用程序中的一些计算,可能会安排另一个新通知吗?(不固定时间,不能重复使用)

4

1 回答 1

0

对的,这是可能的!需要修改功能:

  1. 在后台模式下启用后台获取。
  2. 在后台模式下启用远程通知。
  3. 实现委托方法: application:didReceiveRemoteNotification:fetchCompletionHandler:
  4. 当通知到达手机时,此委托方法会被调用,因此您可以刷新数据。
  5. 当用户点击通知委托方法时:didReceiveRemoteNotification 被调用并打开应用程序,用户将获得应用程序中的最新数据。

苹果 API 参考:

如果您的有效负载配置不正确,则通知可能会显示给用户,而不是在后台传送到您的应用程序。在您的有效负载中,确保满足以下条件:

负载的 aps 字典必须包含值为 1 的 content-available 键。负载的 aps 字典不能包含警报、声音或徽章键。当一个静默通知发送到用户的设备时,iOS 会在后台唤醒你的应用程序并给它最多 30 秒的运行时间。

于 2017-06-01T15:17:37.877 回答