【问题标题】:Difference behaviour of didReceiveRemoteNotification between APNS production and development environmentAPNS 生产环境和开发环境之间 didReceiveRemoteNotification 的不同行为
【发布时间】:2018-02-12 13:02:06
【问题描述】:

我注意到在 APNS 生产环境和开发环境之间 didReceiveRemoteNotification 的行为有所不同。

在开发模式下(使用开发配置文件构建),当用户点击通知时会调用此方法。处于后台和活动状态。

但在生产模式下(使用临时配置文件构建),如果应用程序处于后台或不活动状态,则当用户点击通知时会调用此方法,但 当应用程序处于活动状态时,此方法会在收到通知时立即调用.

谁能帮我理解这种不同的行为?

我希望我的用户在点击通知(处于活动状态)时重定向到不同的屏幕,但由于这种行为,他会自动重定向到其他屏幕。

【问题讨论】:

  • @JitendraSolanki 我的问题不同,你建议的方法也有同样的问题,收到通知时立即调用。
  • @MayankJain 请参考我的回答。如果我在某个地方错了,请告诉我。
  • 有背景是什么意思,被杀还是只是在后台?
  • @AkshaySunderwani 只是背景也与被杀的行为相同,但在前景的情况下不同

标签: ios push-notification apple-push-notifications remote-notifications


【解决方案1】:

你的问题让我很困惑,我做了一个测试,“在开发模式下(使用开发配置文件构建),当用户点击通知时会调用此方法。在后台和活动状态下。 “WatchKit 的文档说:如果在您的应用程序处于活动状态时收到远程通知,WatchKit 会调用此方法来传递通知负载。使用此方法响应通知(无需点击)。我在我的 iphone 上测试过,结果是一样的,无需我点击即可运行。并且在 iOS 10 中已弃用。

【讨论】:

  • 请再次阅读我的问题“在生产模式下(使用临时配置文件构建),当用户点击通知时,如果应用程序处于后台或未激活状态,则调用此方法,但当应用处于活动状态,当收到通知时立即调用此方法。"""""
  • 我的意思是两种模式之间没有区别,当应用程序处于活动状态时,此方法在收到通知时立即调用,无论是处于开发模式还是生产模式。也许你已经忽略了别的东西。
  • 您可以通过以下两种方式实现您的需求。 - (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler { completionHandler(UNNotificationPresentationOptionSound); }.并用这个方法回复你-(void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-04
  • 1970-01-01
  • 1970-01-01
  • 2014-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多