gpt4 book ai didi

ios - 应用程序终止时处理推送通知

转载 作者:IT王子 更新时间:2023-10-29 07:44:09 25 4
gpt4 key购买 nike

当我的应用程序未运行并收到推送通知时,如果我单击该通知,应用程序将启动 - 但随后它不会使用我设置的警报 View 提示用户,询问他们是否需要是否查看通知的内容。它刚刚启动,并坐在那里。

当应用程序运行时,推送通知可以完美运行 - 无论是作为事件应用程序还是在后台运行 - 但当应用程序未运行时,则无法正常运行。

我尝试在应用程序中注销 launchOptions NSDictionary:didFinishLaunchingWithOptions: 以查看它带来的负载 - 但它显示为“(null)”。所以它基本上什么都不包含——这没有意义,因为它不应该包含通知的负载吗?

有人知道如何在应用未运行时让推送通知正常工作吗?

我的意思是当应用程序处于非运行状态时如何处理推送通知。如果,如果您收到很多通知并且您没有打开应用程序,您也没有点击系统的通知面板怎么办?您如何保留这些推送以供以后检索。

最佳答案

1) 当应用程序在后台运行时当应用程序在前台运行时application:didReceiveRemoteNotification: 方法将如下调用。

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
if (application.applicationState == UIApplicationStateInactive)
{
// opened from a push notification when the app was on background
NSLog(@"userInfo->%@", [userInfo objectForKey:@"aps"]);
}
else if(application.applicationState == UIApplicationStateActive)
{
// a push notification when the app is running. So that you can display an alert and push in any view
NSLog(@"userInfo->%@", [userInfo objectForKey:@"aps"]);
}
}

2) 当应用程序未启动(关闭) 然后 application:didFinishedLaunchingWithOptions 方法将被调用。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if (launchOptions != nil)
{
// opened from a push notification when the app is closed
NSDictionary* userInfo = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (userInfo != nil)
{
NSLog(@"userInfo->%@", [userInfo objectForKey:@"aps"]);
}
}
else
{
// opened app without a push notification.
}
}

3) 目前无法删除特定通知。从您的应用程序中删除所有通知以便当用户从其中一个应用程序打开应用程序时它们不会显示在通知中心的方法是将应用程序角标(Badge)设置为 0。

关于ios - 应用程序终止时处理推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35058870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com