ios之極光推送消息收到以后對消息的處理總結


當我們的APP收到推送消息后,通常需要根據推送內容點擊消息進入到指定的頁面

這里講一下收到推送消息后的處理,分為三種情況 :1.APP處於前台運行情況下

                                                  2.APP處於后台掛起情況下

                          3.APP未啟動情況下

前兩種相對好處理一點,我是在didReceiveRemoteNotification方法里接受到消息后發一個通知給MainViewController,跳轉界面

具體如下:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
    
    // Required, iOS 7 Support
    [JPUSHService handleRemoteNotification:userInfo];
    completionHandler(UIBackgroundFetchResultNewData);
    //    NSLog(@"%@",userInfo);
    _notDic = [NSMutableDictionary dictionary];
    [_notDic setObject:userInfo[@"ID"] forKey:@"myID"];
    [_notDic setObject:userInfo[@"PICPATH"] forKey:@"myPic"];
    //判斷應用是在前台還是后台
    if ([UIApplication sharedApplication].applicationState == UIApplicationStateActive) {
        
        //第一種情況前台運行
        NSString *apnCount = userInfo[@"aps"][@"alert"];
        UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"推送信息" message:apnCount delegate:self cancelButtonTitle:@"查看" otherButtonTitles:@"取消", nil];
        alert.delegate = self;
        [alert show];
        
    }else{

      //第二種情況后台掛起時
        [[NSNotificationCenter defaultCenter]postNotificationName:KJPUSHNOT object:nil userInfo:_notDic];
    }
    
}

 

第三種程序未啟動時情況下,需要在didFinishLaunchingWithOptions方法里處理,而不能通過通知跳轉頁面,因為這時MainViewController還沒有走viewDidLoad方法,是沒辦法接受通知的,具體代碼如下:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    //判斷是否是通過點擊推送消息進入的APP
    NSDictionary *resultDic = launchOptions[@"UIApplicationLaunchOptionsRemoteNotificationKey"];
    if (resultDic) {//推送進入APP 
     self.window.rootViewController = wantVC;
    }else{//正常進入APP
    self.window.rootViewController = mainVC;
    }
      
    return YES;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM