Можно ли остановить воспроизведение звука UILocalNotification при доставке уведомления? - PullRequest
3 голосов
/ 21 января 2011

Если UILocalNotification запускается с установленным звуком, и пользователь нажимает «Отмена» в уведомлении о уведомлении, звук останавливается.Но если пользователь нажимает «View», iOS передает уведомление приложению, и звук продолжает воспроизводиться.Есть ли способ отменить этот звук из приложения?Отмена уведомления в приложении после доставки уведомления не работает (я не ожидал, что уведомление уже было доставлено в конце концов), и так как у меня нет идентификатора звука системы звука (и я нея не могу назвать AudioServicesDisposeSystemSoundID (могу ли я?).

Можно ли остановить воспроизведение звука UILocalNotification, если пользователь нажимает кнопку «Действия» в уведомлении?

Ответы [ 4 ]

2 голосов
/ 13 апреля 2012

Не останавливается и на устройстве (5.1)

Я пытался это исправить, но не могу понять.

Я действительно заставил его остановиться на симуляторе, используя

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    UILocalNotification *localNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
    if (localNotif) {
        [[UIApplication sharedApplication] cancelLocalNotification:localNotif];
    }    
    return YES;
}

но на устройстве все равно не останавливается

1 голос
/ 24 января 2011

Очевидно, что проблема существует только на симуляторе (iOS 4.2 SDK), а не на реальном устройстве.

0 голосов
/ 02 декабря 2014

У меня была такая же проблема при первоначальном тестировании с iPhone 4.

Проблема кажется исчезла с iOS 8, и теперь звуки локальных уведомлений прекращаются при отмене после перехода в приложение.

iPhone4 [iOS - 7.1.2] - Звук локальных уведомлений продолжает воспроизводиться в приложении независимо от того, что
iPhone6 ​​[iOS - 8.1.1] - остановка звука локального уведомления при программной отмене

Из того, что я могу сделать вывод, кажется, что исправление существует где-то в iOS 8.x
(Увы, мне не удалось найти какую-либо документацию или заметки о выпуске по этому вопросу.)

Проблема становится не проблема для приложений, ориентированных на iOS 8
(при условии, что вы отмените входящее локальное уведомление)

0 голосов
/ 08 января 2014

Это может быть обработано в методе делегата приложения следующим образом: если пользователь нажимает кнопку «Действие» уведомления, тогда будет вызван следующий метод, в котором мы можем отменить уведомление

- (void)application:(UIApplication *)app
didReceiveLocalNotification:(UILocalNotification *)notif {
[[UIApplication sharedApplication]cancelLocalNotification:notif];
}
...