2013-10-01 3 views
3

В iOS 7, когда пользователь просматривает одно из моих уведомлений с экрана блокировки и переносится в мое приложение, звук уведомления продолжает воспроизводиться (в отличие от iOS 6). Есть ли способ программно остановить этот звук, когда приложение запускается в iOS 7?Остановка звука удаленных уведомлений ios 7

ПРИМЕЧАНИЕ: см. Принятый ответ для дрянной обходной путь.

+1

С моей стороны, 'setApplicationIconBadgeNumber: 0' не работает. Обратите внимание, что это кажется ошибкой: https://devforums.apple.com/message/888091 Но Apple не общалась с этим. – Gui13

+1

вы можете попробовать '[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 1]; [[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0]; ', thats на самом деле то, что я делаю –

+0

Это трюк да. То, что я набрал, является реальным решением, хотя ... Это больше похоже на плохое обходное решение. – Gui13

ответ

6

Я уверен, что это ошибка на конце Apple, см. devforums.apple.com/message/888091 (спасибо Gui13). Создайте дубликат отчета об ошибке, чтобы обратить внимание Apple на него, как that is how Apple assigns priority to bugs. В то же время, следующий будет работать, но будет также понятно, все ваши уведомления в центр уведомлений, который, конечно, является дрянной обходной путь, но в моем случае стоит, пока это не будет исправлена:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 1];  
[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0]; 
+0

Где вы должны положить этот код, чтобы это произошло? Я вставил этот код в: - (void) приложение: (UIApplication *) приложение didReceiveLocalNotification: (UILocalNotification *) уведомление Но звук уведомления продолжает идти?!? –

+0

Вы пытаетесь остановить звук для удаленного уведомления? если так 'didReceiveLocalNotification', как говорится, только для * локальных * уведомлений. Прочитайте, как обрабатывать удаленные уведомления, поскольку они немного для него, но вкратце вы можете поместить его в 'didReceiveRemoteNotification' и' didFinishLaunchingWithOptions' –

+0

Да, я помещаю его в DidReceiveLocalNotification, но звук не останавливается. Любые предложения, пожалуйста? –

0

это Безразлично Не помогайте с помощью

[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 1];  
[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0]; 

после входа в приложение, нажав на уведомление.

Я решил эту проблему, направив другое пустое уведомление при работе с уведомлением со звуком:

if (notification.soundName != nil) { 
    if (IS_IOS7) { 
     UILocalNotification *emptyNotification = [[UILocalNotification alloc] init]; 
     emptyNotification.timeZone = [NSTimeZone defaultTimeZone]; 
     emptyNotification.fireDate = [NSDate date]; 
     emptyNotification.alertBody = @""; 
     [[UIApplication sharedApplication] scheduleLocalNotification:emptyNotification]; 
    } 
} 
Смежные вопросы