Уведомления

В AppStudio AppFramework предоставляет плагин Notifications, который содержит инструменты для предупреждения и информирования пользователей приложения на уровне операционной системы за пределами приложения.

Пример подобного функционала см. в примере приложения, доступном в ArcGIS AppStudio или в репозитории образцов AppStudio на GitHub.

Локальные уведомления

Компонент LocalNotification даёт возможность применять уведомления для конечных пользователей. Не путайте с пуш-уведомлениями, которые поступают из внешнего облачного сервиса; локальные уведомления идут из приложения и запускаются изнутри. Чтобы использовать компонент LocalNotification, вы сначала должны включить следующие утверждения импорта:

import ArcGIS.AppFramework.Notifications.Local 1.0

Для локальных уведомлений требуется, чтобы следующие параметра были заданы по расписанию:

  • Заголовок сообщения
  • Содержание сообщения
  • Временная задержка, после которой появляется сообщение, измеряется в миллисекундах.

Эти параметры поддерживаются методом schedule, который устанавливает запуск уведомления через заданное количество миллисекунд и предоставляет ID для уведомления, которое затем используется в методе clear, чтобы его удалить.

Когда расписание уведомления задано, приложение уже не должно быть не только в фокусе, но и вообще запущено, чтобы уведомление появилось. Следующий пример кода основан на шаблоне Quick Report и использует LocalNotification, устанавливая появление уведомления через час после отправки отчёта, чтобы напомнить пользователю отправить следующий отчёт:

LocalNotification {
    id: notification
    onTriggered: {
        console.log("Triggered ID: ", id)
    }
}
Component {
    id: addDetailsPage
    AddDetailsPage {
        onNext: {
            if(message=="submit"){
                submitReport()
                notification.schedule("Submit Follow-Up Report", "An hour has passed since your initial report. Please send a follow-up report.", 3600000)
            } else{
                stackView.showResultsPage()
                saveReport()
            }
        }
        onPrevious: {
            stackView.pop();
        }
    }
}

Вибросигнал

Помимо местных уведомлений, предоставляющих уведомления в видимой форме, вы также можете применить невизуальную обратную связь при помощи компонента Vibration. Вибросигналы часто используются для того, чтобы выделить действия или уведомить пользователя, но наиболее часто используются вместе с уведомлением, требующим чтобы пользователь посмотрел на своё устройство. Чтобы использовать Вибросигнал, включите следующие утверждения импорта:

import ArcGIS.AppFramework.Notifications 1.0

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

LocalNotification {
    id: notification
    onTriggered: {
        console.log("Triggered ID: ", id)
        if(Vibration.supported) {
            Vibration.vibrate()
        }
        else{
            console.log("Vibration not supported on this device.")
        }
    }
}

В настоящее время нет возможности предоставить длительность компонента Vibration. На устройствах Android вибросигнал длится одну секунду; на всех прочих устройствах столько времени, сколько установлено системой по умолчанию.