A programação de uilocalnotificação com repetição para a questão das 10h GMT
-
25-09-2019 - |
Pergunta
Sinto muito se esta é uma pergunta absoluta noob, mas não consigo descobrir essa a partir da documentação ou outras perguntas da pilha -
Como posso definir um objeto nsdate para 10:00 GMT? A razão pela qual peço é isso - quero definir uma notificação local às 10:00 GMT todos os dias.
Eu acho que o seguinte está no caminho certo:
NSDateComponents *comps = [[NSDateComponents alloc]init];
[comps setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
[comps setYear:2011];
[comps setMonth:1];
[comps setWeek:1];
[comps setDay:1];
[comps setHour:10];
[comps setMinute:52];
[comps setSecond:0];
NSCalendar *gregorian = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [gregorian dateFromComponents:comps];
[comps release];
UILocalNotification *notif = [[UILocalNotification alloc]init];
notif.fireDate = date;
notif.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"];
notif.alertBody = @"New Challenges are available in Halo: Reach.\n\n Give them a look over with Halo Reach Challenges!";
notif.alertAction = @"Show Me";
notif.applicationIconBadgeNumber = 5;
notif.repeatInterval = NSDayCalendarUnit;
[[UIApplication sharedApplication] scheduleLocalNotification:notif];
[notif release];
Infelizmente, isso não dispara. Qualquer ajuda seria muito apreciada :)
Solução
Enquanto seu aplicativo estiver em execução, a notificação será enviada diretamente ao seu aplicativo. Você precisará configurar um manipulador (no AppDelegate) e exibir a mensagem você mesmo. Quando o aplicativo não está em execução, a notificação deve ser mostrada.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow