Как сделать локальное уведомление без звука в IONIC 3? - PullRequest
0 голосов
/ 21 января 2019

Я хочу создать приложение, которое показывает некоторый прогресс в строке состояния (для случая, когда устройство заблокировано, а приложение работает в фоновом режиме).

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

Я пробовал несколько разных способов установить параметры уведомления. Я пытался использовать расписание и обновления (но это привело только к тому, что уведомление вообще не показывалось).

Мой код для создания локального уведомления с использованием функции обновлений:

private createPushNotification(title: string, text: string, isImportant: boolean) {
    if(!this.localNotifications.hasPermission) this.localNotifications.requestPermission()

    if(this.localNotifications.isPresent(1)){
      this.localNotifications.update({
        id: 1,
        title: title,
        text: text,
        vibrate: false,
        sound: null,
        wakeup: false,
        launch: true
      });
    }
    else{
      this.localNotifications.schedule({
        id: 1,
        title: title,
        text: text,
        vibrate: false,
        sound: null,
        wakeup: true,
        launch: true,
        sticky: true
      });
    }
  }

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

private createPushNotification(title: string, text: string, isImportant: boolean) {
  this.localNotifications.schedule(
    id: 1,
    title: title,
    text: text,
    vibrate: false,
    sound: null,
    wakeup: true,
    launch: true,
    sticky: true
  });
}

Я ожидаю, что Уведомление будет молчать, когда я установлю для параметра "sound" значение null (потому что оно так говорит на нескольких ресурсах), и отключу вибрацию, когда я установлю его на false.

...