AppStudio AppFramework 提供了一种通知插件,该插件包含在操作系统级别提醒和通知应用程序用户的工具,此类提醒和通知不受应用程序控制。
有关此功能的示例,请参阅 ArcGIS AppStudio 或 AppStudio 示例 GitHub 资料档案库中提供的示例应用程序。
本地通知
LocalNotification 组件提供了向最终用户发送通知的功能。与来自外部云服务的推送通知不同,本地通知来自应用程序且在内部触发。要使用 LocalNotification 组件,您首先需要包括以下 import 语句:
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 组件实现不可视反馈。振动通常用于提示特定操作或通知用户,但最常见的用途是与通知一起提醒用户查看设备。要使用 Vibration 组件,您首先需要包括以下 import 语句:
import ArcGIS.AppFramework.Notifications 1.0
Vibration 是一种单一化组件,即您无法将其实例化。以下代码示例将为应用程序计划的所有本地通知配置振动。如果设备不支持振动,则控制台日志中将显示一条消息。
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 设备的振动会持续一秒;其他设备的振动时长为系统默认值。