В 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 вибросигнал длится одну секунду; на всех прочих устройствах столько времени, сколько установлено системой по умолчанию.