gpt4 book ai didi

ios - 如何在应用程序关闭时在 ios 中接收本地通知

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:42:37 26 4
gpt4 key购买 nike

我正在为警报系统使用本地通知,但我在处理本地通知时遇到了一些问题,当我单击警报通知(当应用程序关闭时)时,它会启动应用程序,但问题是它应该转到 didFinishLaunchingWithOptions 函数,但它不会进入 appDelegate 中的任何函数(我使用断点来检查)。我正在使用带导航 Controller 的 Storyboard,我想在应用关闭时在通知点击时打开一个特定的 View Controller 。

但是当我正常启动该应用程序时,它会进入 didFinishLaunchingWithOptions 函数。

请提出建议。

如有任何帮助,我们将不胜感激。

主.m

#import "DEMOAppDelegate.h"
int main(int argc, char * argv[])
{
@autoreleasepool
{
return UIApplicationMain(argc, argv, nil, NSStringFromClass([DEMOAppDelegate class]));
}
}

DEMOAppDelegate.m

#import "DEMOAppDelegate.h"        
@implementation DEMOAppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UILocalNotification *localNotif = [launchOptions objectForKey: UIApplicationLaunchOptionsLocalNotificationKey];
if (localNotif)
{
NSLog(@"Recieved Notification %@",localNotif);
}
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application
{
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
}
- (void)applicationWillTerminate:(UIApplication *)application
{
}
-(void) application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:notification.alertAction message:notification.alertBody delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
}
@end

最佳答案

这是不可能的,当您的应用没有运行通知时,它不会直接对通知使用react。

didFinishLaunchingWithOptions 将仅在用户通过此通知打开您的应用时包含有关通知的信息。如果他取消它并通过仪表板图标打开您的应用程序,您将不会在此方法中看到它。

不幸的是,如果您需要对用户上次打开应用程序时发生的所有通知使用react,唯一的方法是构建您自己的跟踪逻辑并根据时间获取过去的所有事件。此外,甚至无法获得您为应用程序安排的通知列表,因此通常构建基于时间的事件逻辑并在其之上使用通知是个好主意,但所有逻辑都在您自己的时间发生基于代码。这样,即使用户禁用通知,您的关键逻辑也会起作用。

当应用程序在后台运行时,您将通过 application:didReceiveRemoteNotification 收到通知。您可以在您的应用程序中收集这些通知,如果您想在用户从后台返回应用程序后在您的应用程序中为它们做任何特定的事情,并在 applicationDidBecomeActive 上处理它们。

关于ios - 如何在应用程序关闭时在 ios 中接收本地通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25075141/

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