推送消息出现情景和处理办法

本文深入探讨了iOS应用程序在不同状态下接收推送消息时的处理流程。包括程序关闭时通过`application(_:didFinishLaunchingWithOptions:)`方法接收消息,程序前台工作时通过`application(_:didReceiveRemoteNotification:)`方法接收消息,以及程序处于后台运行状态时如何响应推送通知。文章提供了具体的代码示例和关键逻辑解析,帮助开发者理解和实现高效的推送消息处理。

1. 当程序处于关闭状态收到推送消息时,点击图标会调用- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions这个方法,那么消息给通过launchOptions这个参数获取到。

 

  //  判断程序是不是由推送服务完成的

    if (launchOptions)

    {

        NSDictionary* pushNotificationKey = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

        if (pushNotificationKey)

        {

            UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"推送通知"

                                                           message:@"这是通过推送窗口启动的程序,你可以在这里处理推送内容"

                                                          delegate:nil

                                                 cancelButtonTitle:@"知道了"

                                                 otherButtonTitles:nil, nil];

            [alert show];

            [alert release];

        }

    }

 

2. 当程序处于前台工作时,这时候若收到消息推送,会调用- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo这个方法

 

-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification

{

    

    

 

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"接收到本地提醒"

                          

                                                    message:notification.alertBody

                          

                                                   delegate:nil

                          

                                          cancelButtonTitle:notification.alertTitle

                          

                                          otherButtonTitles:notification.alertAction, nil];

    

    [alert show];

    

    //这里,你就可以通过notification的useinfo,干一些你想做的事情了

    

   // application.applicationIconBadgeNumber -= 1;

 

    

}

3. 当程序处于后台运行时,这时候若收到消息推送,如果点击消息或者点击消息图标时,也会调用- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary *)userInfo这个方法

 

转载于:https://www.cnblogs.com/woaixixi/p/4971521.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值