Форум программистов, компьютерный форум CyberForum.ru

Обработка пуша - Objective-C

Восстановить пароль Регистрация
 
heroii2009
16 / 6 / 0
Регистрация: 13.03.2012
Сообщений: 196
09.09.2014, 11:09     Обработка пуша #1
Всм доброго времени суток, вот возникла проблемма, не могу найти рабочее решение, картина такая, мне сервер присылает пуш с определенным типом, я проверяю тип пуша и по нему через локальную нотификацию выполняю какое либо действие, все работает только в состоянии активного приложения, если приложение свернуто либо выключено действия не происходит, если свернуто и приходит пуш по нажатию на пуш все работает, если выключено и я нажимаю на пуш то тоже приложение просто разворачивается видна главная страница но действие не происходит, как это исправить кто-то подскажит ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2014, 11:09     Обработка пуша
Посмотрите здесь:

Обработка одномерных массивов и Обработка двухмерных массивов. Visual Basic
Turbo Pascal Обработка
Обработка в 7.7 1С
обработка C++ Qt
1С Обработка
1С 1C 8.x Обработка ТО
Objective-C Обработка нажатия в определенном месте на карте
Обработка 1С
Пост запрос обработка результата Objective-C

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
09.09.2014, 11:27     Обработка пуша #2
Если приложение не запущено, то по клику юзера на пуше, оно, соответственно, начинает стартовать.
Т.е. выполняется метод:
Objective-C
1
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
В нем необходимо сделать проверку такого плана:
Objective-C
1
2
3
4
5
NSDictionary *remoteNotif = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey];
    
    if (remoteNotif) {
        [self processPushWithInfoDict:remoteNotif];
    }
Соответственно, если приложение стартовало путем клика юзера по пуш-уведомлению, то remoteNotif будет что-то содержать. А ежели он == nil, вывод - приложение запустилось обычным способом.
heroii2009
16 / 6 / 0
Регистрация: 13.03.2012
Сообщений: 196
09.09.2014, 12:23  [ТС]     Обработка пуша #3
Спасибо, сейчас попробую, а что такое remoteNotif? Массив в котором я храню информацию что приходет в пуше ?

Добавлено через 1 минуту
я пуши регистрирую в методе
Objective-C
1
- (void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
Добавлено через 57 секунд
тю блин, простите мне мою не внимательность, увидел все))

Добавлено через 5 минут
Вообщем сделал, протестировал, получилось что Алерт вью вылез а действие перехода на экран не произошло (

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
-(void)processPushWithInfoDict:(NSDictionary *)userInfo {
    
    NSLog(@"Received notification: %@", userInfo);
    
    [AppManager sharedInstance].pushType = [NSString stringWithFormat:@"%@",[userInfo objectForKey:@"push_type"]];
    [AppManager sharedInstance].time = [NSString stringWithFormat:@"%@",[userInfo objectForKey:@"time"]];
    [AppManager sharedInstance].orderID = [NSString stringWithFormat:@"%@",[userInfo objectForKey:@"order_id"]];
    [AppManager sharedInstance].delay = [NSString stringWithFormat:@"%@",[userInfo objectForKey:@"delay"]];
    [AppManager sharedInstance].driver_id = [NSString stringWithFormat:@"%@",[userInfo objectForKey:@"driver_id"]];
    NSLog(@"%@",[AppManager sharedInstance].pushType);
   // UIApplication.applicationIconBadgeNumber = 0;
    
   
    if ([[AppManager sharedInstance].pushType isEqualToString:@"3"]){
        
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Внимание"
                                                        message:@"Водитель хочет взять ваш заказ"
                                                       delegate:self
                                              cancelButtonTitle:@"OK"
                                              otherButtonTitles:nil, nil];
        
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil];
        UINavigationController *vc = [storyboard instantiateViewControllerWithIdentifier:@"ModalNavController"];
        [alert show];
        [self.window.rootViewController presentViewController:vc animated:YES completion:nil];
    }
}
Yandex
Объявления
09.09.2014, 12:23     Обработка пуша
Ответ Создать тему
Опции темы

Текущее время: 09:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru