• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-12-13 08:48:08 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

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

请提出建议。

任何帮助将不胜感激。

main.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)applicationUIApplication *)application didFinishLaunchingWithOptionsNSDictionary *)launchOptions
{
    UILocalNotification *localNotif = [launchOptions objectForKey: UIApplicationLaunchOptionsLocalNotificationKey];
    if (localNotif) 
    {
        NSLog(@"Recieved Notification %@",localNotif);
    }
    return YES;
}                                   
- (void)applicationWillResignActiveUIApplication *)application 
{
}
- (void)applicationDidEnterBackgroundUIApplication *)application 
{
}
- (void)applicationWillEnterForegroundUIApplication *)application 
{
}
- (void)applicationDidBecomeActiveUIApplication *)application 
{
}
- (void)applicationWillTerminateUIApplication *)application 
{
}
-(void) applicationUIApplication *)application didReceiveLocalNotificationUILocalNotification *)notification 
{
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:notification.alertAction message:notification.alertBody delegate:self cancelButtonTitle"OK" otherButtonTitles:nil];
    [alertView show];
}
@end



Best Answer-推荐答案


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

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

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

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

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

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap