gpt4 book ai didi

xcode - 选择推送通知横幅时调用的方法

转载 作者:行者123 更新时间:2023-12-03 23:32:16 25 4
gpt4 key购买 nike

我有一个要发送给用户的推送通知,我希望能够在他们点击它时采取行动。我知道如果应用程序在前台、后台,或者如果用户点击通知中心的警报,则在应用程序委托(delegate)中调用了以下方法:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo

但是,如果应用程序未启动并且用户在通知到达后立即点击通知横幅,则似乎不会调用此方法。在这种情况下,我需要采用不同的方法吗?他们的其他情况是否也应该实现其他方法?

最佳答案

如果单击通知横幅时您的应用程序未启动,那么您将在 application:didFinishLaunchingWithOptions: 中收到一个 NSDictionary .

然后你可以做这样的事情:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSDictionary *pushDict = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if(pushDict)
{
[self application:application didReceiveRemoteNotification:pushDict];
}
}

此外,在您的 application:didReceiveRemoteNtification:方法,您可以测试您的应用程序在收到通知时是否处于非事件状态,如下所示:
-(void)application:(UIApplication *)app didReceiveRemoteNotification:(NSDictionary *)userInfo
{
if([app applicationState] == UIApplicationStateInactive)
{
NSLog(@"Received notifications while inactive.");
}
else
{
NSLog(@"Received notifications while active.");
}

关于xcode - 选择推送通知横幅时调用的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11926736/

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