Я не получаю уведомления в газетном киоске, когда приложение не работает, вот что я сделал.Получение уведомлений только в том случае, если приложение запущено
Приложение имеет правильные ключи plist «UINewsstandApp = YES» и «UIBackgroundModes = contentstand-content».
В делегате приложения я регистрируюсь для всех типов уведомлений, и я получаю свой токен от APNS, со стороны сервера (я использую драгоценный камень под названием Grocer). Я установил сертификат разработчика и отправлю обычный push, и он работает ,
Если я отправляю push-киоск, я получаю его, если приложение работает на 'didReceiveRemoteNotification', но когда приложение не работает, я ничего не получаю в центре уведомлений, что связано главным образом с тем, что «Grocer» имеет следующую полезную нагрузку {"aps": {"content-available": 1}} и не может добавлять никаких других ключей (предупреждение, значок и т. д.)
поэтому я думал, что ничего не должен получать в центре уведомлений, я смотрю для «UIApplicationLaunchOptionsRemoteNotificationKey» в параметрах запуска, а затем напишите файл, чтобы убедиться, что приложение работает в фоновом режиме, файл никогда не записывается как таковой
NSDictionary *remoteNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if(remoteNotif)
{
NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *filePath = [cachePath stringByAppendingPathExtension:@"pushreceived.txt"];
[@"testing" writeToFile:filePath atomically:YES encoding:NSASCIIStringEncoding error:nil];
}
У меня есть NKDontThrottleNewsstandContentNotifications установлен на true в моих настройках по умолчанию, а затем я синхронизируюсь, чтобы убедиться.
, когда приложение не работает, независимо от того, сколько раз я отправить толчок, я всегда получаю обратный вызов на «didReceiveRemoteNotification», с соответствующим «содержанием доступного»
если приложение закрыто или в фон, ничего не происходит.
Update:
мне удалось изменить драгоценный камень, который передает полезную нагрузку уведомления, вот словарь он посылает
{"aps"=>
{
"alert"=>"Hello iPhone!!",
"content-available"=>1,
"badge"=>1,
"sound"=>"default"
}
}
и здесь словарь UserInfo я получаю на моем приложении (при работе)
{
aps = {
alert = "Hello iPhone!!";
badge = 1;
"content-available" = 1;
sound = default;
};
}
Обратите внимание на кавычки вокруг контента, доступного, означает ли это, что APNS проанализировал его как пользовательский ключ?
уведомление в журнале новостей «в теории» должно быть в состоянии запустить приложение, даже если оно отключено с помощью «UIApplicationLaunchOptionsRemoteNotificationKey» .. этого не происходит atm – Zoidberg
@ Zoidberg действительно ли этот ответ выглядит полезным? http://stackoverflow.com/a/4296282/187954 –
, к сожалению, это не то, что я делаю в коде в моем вопросе: < – Zoidberg