Как вибрировать до 30 секунд iOS-устройства в фоновом режиме при получении push-уведомления - PullRequest
0 голосов
/ 01 июля 2019

Я реализовал APNS для push-уведомлений. Я использую пользовательский звук для оповещения, которое будет воспроизводить 30 секунд звуковой файл сирены. это работает. во время воспроизведения этого звука я получаю только один раз вибрации продолжительностью 2 секунды. Мне нужна вибрация до 30 секунд. как я могу этого достичь. это полезная нагрузка, которую я использую.

{"aps":{"alert":"alert message","badge":1,"sound":"SIREN.caf"}}

Я пытался реализовать код для вибрации до 30 секунд. это будет звонок на

didReceiveRemoteNotification

    -(void)vibrateDevice{
  AudioServicesPlaySystemSoundWithCompletion(kSystemSoundID_Vibrate, ^{
    AudioServicesDisposeSystemSoundID(kSystemSoundID_Vibrate);
  });
  vibrateCount++;
  if (vibrateCount<30) {
    //        [self performSelector:@selector(vibrateDevice) withObject:nil afterDelay:1.0];
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { NSTimer* t = [NSTimer scheduledTimerWithTimeInterval:1 target:self  selector:@selector(vibrateDevice) userInfo:nil repeats:NO];
      [[NSRunLoop currentRunLoop] addTimer:t forMode:NSDefaultRunLoopMode];
      [[NSRunLoop currentRunLoop] run];
    });
  }
}

проблема в том, что я могу вибрировать только на переднем плане приложения. когда приложение убит или в фоновом коде вибрации часть не работает.

...