【问题标题】:Understanding Remote Notifications了解远程通知
【发布时间】:2017-09-18 10:26:51
【问题描述】:

我对通知真的很陌生,我尝试了其他问题中提到的许多答案,但我很困惑。

所以情况就是这样。我有一个接收远程通知的应用程序。我设法使用didReceiveRemoteNotification 对其进行配置,以显示它收到的消息,当点击通知时,用户会通过 SWReveal 库转到特定的 viewController。如果应用程序在后台,这很有效。

在前台我被告知我应该使用 iOS 10 的 willPresent notificationdidReceive response 方法。如果应用程序在前台,我设法让通知显示,但点击通知没有任何作用。我想执行与didReceiveRemoteNotification 相同的功能。

我还需要为收到的一些通知(背景和前景)添加操作按钮,但我不知道如何处理。

任何帮助将不胜感激。

【问题讨论】:

  • “我在 didReceiveRemoteNotification 中具有相同的功能”相同的含义是什么?如果您想向通知添加操作,请参阅here。确保您也看到了 WWDC 视频。这真的很有帮助。 (可能您的问题与该问题重复,但您的问题仍不清楚。进行编辑)

标签: ios swift push-notification ios10 remote-notifications


【解决方案1】:

适用于 Swift 3、iOS 10

查看是否在 viewDidLoad 中设置了 UNUserNotificationCenter(即 UNUserNotificationCenter.current().delegate = self) 的委托

然后在里面处理通知的点击

func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {

     //Handle notification tap
  }

【讨论】:

    【解决方案2】:

    您可以做的一个解决方案是让远程通知实际上是一个静默通知,然后在您的应用程序收到此静默通知时,您会立即安排本地通知。现在它是本地通知而不是远程通知,您可以在客户端(应用程序端)做任何您需要做的事情,这使得它更加灵活。

    【讨论】:

    • 本地通知是否足够灵活,允许我自定义用户“单独”点击通知正文和操作按钮时发生的情况?因为到目前为止,无论用户点击操作按钮还是通知正文,didReceive 响应都会处理这两个最终执行的整个代码。
    猜你喜欢
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多