UILocalNotification-从通知打开应用程序时出错

克劳迪奥

我在我的应用程序中使用本地通知。一切正常,但是当我从通知中打开应用程序时,无法访问通知的userinfo。这是我安排通知的方式:

UILocalNotification *notification = [[UILocalNotification alloc] init];
notification.userInfo = @{@"eventId" : eventID};

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:[[NSLocale preferredLanguages] objectAtIndex:0]];

[dateFormatter setLocale:enUSPOSIXLocale];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.S"];

NSDate *dateStart = [dateFormatter dateFromString: [eventDictionary valueForKey:@"time_start"]];


NSDate *newDate = [[NSDate date] dateByAddingTimeInterval:15];

notification.fireDate = newDate;
notification.timeZone = [NSTimeZone defaultTimeZone];
notification.alertAction = @"Open";
notification.alertBody = @"Some title";
notification.soundName = UILocalNotificationDefaultSoundName;


//cfilipi: todo: verify if event date is bigger than today
if ([newDate timeIntervalSinceNow] > 0) {
    [[UIApplication sharedApplication] scheduleLocalNotification:notification];
}

这是我从通知(AppDelegate.m)打开应用程序时的处理方式:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    if ([launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey] != nil){
        //even when I cast to NSDictionary, it gets other class type (UIConcreteLocalNotification, I can't find any information about this class)
        NSDictionary * aPush = (NSDictionary *)[launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
        [self handleLocalNotification:aPush];
    }
}

-(void)handleLocalNotification:(NSDictionary *)localNotification{
    NSDictionary *userInfo = [localNotification objectForKey:@"userinfo"];
    NSString *eventId = [userInfo objectForKey:@"eventId"];
    if ([eventId length] >= 1) {
        //I use this key in some parts of my code
        [[NSUserDefaults standardUserDefaults] setObject:eventId forKey:@"eventId"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }
}

这是我在调试didFinishLaunchingWithOptions时从LLDB中获得的信息:

(lldb) po aPush
<UIConcreteLocalNotification: 0x145b2ba0>{fire date = quinta-feira, 18 de dezembro de 2014 08:47:13 Horário de Verão de Brasília, time zone = America/Sao_Paulo (BRST) offset -7200 (Daylight), repeat interval = 0, repeat count = UILocalNotificationInfiniteRepeatCount, next fire date = (null), user info = {
eventId = 21;
}}

我的问题是:我在做什么错?有什么办法可以将此UIConcreteLocalNotification转换为NSDictionary?我也尝试将其转换为UILocalNotification,但没有成功。

问候!

阿德·乌尔·雷曼

这样做就可以了:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{
    UILocalNotification *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
   if ( notification != nil ) 
    {
        [self handleLocalNotification:[notification userInfo]];
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

UILocalNotification不发送通知

来自分类Dev

设置UILocalNotification然后关闭应用程序时,iOS Simulator崩溃

来自分类Dev

从后台终止应用程序后,UILocalnotification无法正常工作

来自分类Dev

从iOS通知中心自动删除UILocalNotification

来自分类Dev

iOS UILocalNotification的操作按钮崩溃并破坏了应用程序数据

来自分类Dev

iBeacon应用程序的iOS 9中的UILocalNotification提示声音为2次,但列表中只有一个通知

来自分类Dev

启用/禁用特定的UILocalNotification并一次设置多个通知

来自分类Dev

从通知中心点击时,UILocalNotification不会触发didReceiveLocalNotification

来自分类Dev

从通知中心点击时,UILocalNotification不会触发didReceiveLocalNotification

来自分类Dev

Swift UILocalNotification:显示通知时是否可以触发事件?

来自分类Dev

使用 GeckoFX 打开应用程序时出错

来自分类Dev

运行闪亮的应用程序时出错“无法打开连接”

来自分类Dev

打开应用程序时检索APNS的通知

来自分类Dev

每次打开应用程序时触发本地通知

来自分类Dev

UILocalNotification的FireDate

来自分类Dev

Android通知:打开应用程序时不显示通知吗?

来自分类Dev

通过单击通知打开应用程序时,FCM 不会再次打开活动

来自分类Dev

运行Babel应用程序时出错

来自分类Dev

运行Javafx应用程序时出错

来自分类Dev

启动应用程序时出错

来自分类Dev

运行MVC应用程序时出错

来自分类Dev

安装Blackberry应用程序时出错

来自分类Dev

安装应用程序时出错

来自分类Dev

运行SOLR应用程序时出错

来自分类Dev

运行Ruby应用程序时出错

来自分类Dev

安装应用程序时出错

来自分类Dev

发布Marketplace应用程序时出错

来自分类Dev

构建cordova应用程序时出错

来自分类Dev

启动我的应用程序时出错

Related 相关文章

  1. 1

    UILocalNotification不发送通知

  2. 2

    设置UILocalNotification然后关闭应用程序时,iOS Simulator崩溃

  3. 3

    从后台终止应用程序后,UILocalnotification无法正常工作

  4. 4

    从iOS通知中心自动删除UILocalNotification

  5. 5

    iOS UILocalNotification的操作按钮崩溃并破坏了应用程序数据

  6. 6

    iBeacon应用程序的iOS 9中的UILocalNotification提示声音为2次,但列表中只有一个通知

  7. 7

    启用/禁用特定的UILocalNotification并一次设置多个通知

  8. 8

    从通知中心点击时,UILocalNotification不会触发didReceiveLocalNotification

  9. 9

    从通知中心点击时,UILocalNotification不会触发didReceiveLocalNotification

  10. 10

    Swift UILocalNotification:显示通知时是否可以触发事件?

  11. 11

    使用 GeckoFX 打开应用程序时出错

  12. 12

    运行闪亮的应用程序时出错“无法打开连接”

  13. 13

    打开应用程序时检索APNS的通知

  14. 14

    每次打开应用程序时触发本地通知

  15. 15

    UILocalNotification的FireDate

  16. 16

    Android通知:打开应用程序时不显示通知吗?

  17. 17

    通过单击通知打开应用程序时,FCM 不会再次打开活动

  18. 18

    运行Babel应用程序时出错

  19. 19

    运行Javafx应用程序时出错

  20. 20

    启动应用程序时出错

  21. 21

    运行MVC应用程序时出错

  22. 22

    安装Blackberry应用程序时出错

  23. 23

    安装应用程序时出错

  24. 24

    运行SOLR应用程序时出错

  25. 25

    运行Ruby应用程序时出错

  26. 26

    安装应用程序时出错

  27. 27

    发布Marketplace应用程序时出错

  28. 28

    构建cordova应用程序时出错

  29. 29

    启动我的应用程序时出错

热门标签

归档