【问题标题】:Read all push notifications available in the notification bar in iOS阅读 iOS 通知栏中所有可用的推送通知
【发布时间】:2015-09-11 17:18:24
【问题描述】:

用户强制终止应用程序,然后从服务器收到 3 个推送通知。 单击推送通知时,应用程序将重新启动。

是否可以读取该特定应用程序通知栏中所有可用推送通知的用户信息字典?

【问题讨论】:

标签: ios


【解决方案1】:

不,这是不可能的。您需要实现一个 Web 服务。 Web 服务将提供所有未读通知。

【讨论】:

    【解决方案2】:

    如果您的应用程序没有运行,那么只有用户实际点击的通知才会发送到您的应用程序didFinishLaunchingWithOptions。其他通知的内容不可用。

    如果用户从应用程序图标而不是通知启动您的应用程序,则没有可用的通知信息。

    无论didFinishLaunchingWithOptions 中的通知数据是否可用,您的应用都应在启动时检索所有更新。通知数据的存在应该暗示用户对您的应用程序的期望行为(例如,如果他们点击通知说他们收到了来自特定用户的消息,他们可能希望应用程序打开到那个消息)。

    【讨论】:

      【解决方案3】:

      是的,可以通过从导航控制器单击来读取推送通知。

      首先,当应用程序打开时,它来自didFinishLaunching 方法。如果您尝试从导航推送通知单击打开应用程序,那么您可以在launchOptions 变量中获得通知。它包含有关 Pushnotification 的字典。

      您可以通过以下代码找到它。

      - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
      {
          NSDictionary *userInfo = [launchOptions valueForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"];
          NSDictionary *apsInfo = [userInfo objectForKey:@"aps"];
      
          if(apsInfo) {
              //there is some pending push notification, so do something
          }
      }
      

      【讨论】:

      • 但是我们能够获取我们录制的特定推送的用户信息字典。
      • 你只会得到被点击的aps。无法获取所有列表。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-19
      • 2011-08-07
      • 1970-01-01
      相关资源
      最近更新 更多