【发布时间】:2015-09-11 17:18:24
【问题描述】:
用户强制终止应用程序,然后从服务器收到 3 个推送通知。 单击推送通知时,应用程序将重新启动。
是否可以读取该特定应用程序通知栏中所有可用推送通知的用户信息字典?
【问题讨论】:
标签: ios
用户强制终止应用程序,然后从服务器收到 3 个推送通知。 单击推送通知时,应用程序将重新启动。
是否可以读取该特定应用程序通知栏中所有可用推送通知的用户信息字典?
【问题讨论】:
标签: ios
不,这是不可能的。您需要实现一个 Web 服务。 Web 服务将提供所有未读通知。
【讨论】:
如果您的应用程序没有运行,那么只有用户实际点击的通知才会发送到您的应用程序didFinishLaunchingWithOptions。其他通知的内容不可用。
如果用户从应用程序图标而不是通知启动您的应用程序,则没有可用的通知信息。
无论didFinishLaunchingWithOptions 中的通知数据是否可用,您的应用都应在启动时检索所有更新。通知数据的存在应该暗示用户对您的应用程序的期望行为(例如,如果他们点击通知说他们收到了来自特定用户的消息,他们可能希望应用程序打开到那个消息)。
【讨论】:
是的,可以通过从导航控制器单击来读取推送通知。
首先,当应用程序打开时,它来自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
}
}
【讨论】: