【问题标题】:How to manage notification when users click on badge用户点击徽章时如何管理通知
【发布时间】:2012-01-30 21:40:06
【问题描述】:

我有一个关于通知的问题要问。经过几个小时的学习如何在 iPhone 上实现推送通知,现在它来了!

如何管理点击徽章或点击警报查看的用户?当用户点击那里时会发生什么?

我试图向我发送一些通知和应用程序图标上的数字以跳板增量。通过哪种方式点击那里可以显示一个uiview来管理到达的通知并显示已读和未读的消息?

有教程吗?我想将所有消息保存在 uitableview 中。

【问题讨论】:

    标签: iphone uitableview onclick push-notification badge


    【解决方案1】:

    你想看Handling Local and Remote Notifications

    基本上在您的应用程序委托中,您想要实现:

    - (BOOL)application:(UIApplication *)app didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;
    

    和

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

    并为通知数据处理launchOptions / userInfo。

    我通常如何处理数据是:

    - (BOOL)application:(UIApplication *)app didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        NSDictionary* userInfo =
            [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
        if (userInfo) {
            [self processRemoteNotification:userInfo];
        }
        [window addSubview:viewController.view];
        [window makeKeyAndVisible];
        return YES;
    }
    
    - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
        [self processRemoteNotification:userInfo];
    }
    

    The Notification Payload 部分记录了 userInfo 的格式。

    例如“aps”键将为您提供另一个 NSDictionary,然后查找“alert”键将为您提供显示的警报消息。此外,您在 JSON 有效负载中发送的任何自定义数据也将在其中。

    NSDictionary *apsInfo = [userInfo objectForKey:@"aps"];
    
    NSString *alertMsg = @"";
    NSString *badge = @"";
    NSString *sound = @"";
    NSString *custom = @"";
    
    if( [apsInfo objectForKey:@"alert"] != NULL)
    {
        alertMsg = [apsInfo objectForKey:@"alert"]; 
    }
    
    
    if( [apsInfo objectForKey:@"badge"] != NULL)
    {
        badge = [apsInfo objectForKey:@"badge"]; 
    }
    
    
    if( [apsInfo objectForKey:@"sound"] != NULL)
    {
        sound = [apsInfo objectForKey:@"sound"]; 
    }
    
    if( [userInfo objectForKey:@"Custom"] != NULL)
    {
        custom = [userInfo objectForKey:@"Custom"];
    }
    

    【讨论】:

    • 我只是按照苹果网站上的信息,没有任何问题。你到底有什么问题?
    • 用你想要的信息更新了答案。
    猜你喜欢
    • 1970-01-01
    • 2014-01-08
    • 2022-12-14
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多