通知

AppStudio AppFramework 提供了一种通知插件,该插件包含在操作系统级别提醒和通知应用程序用户的工具,此类提醒和通知不受应用程序控制。

有关此功能的示例,请参阅 ArcGIS AppStudioAppStudio 示例 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 设备的振动会持续一秒;其他设备的振动时长为系统默认值。


在本主题中
  1. 本地通知
  2. 振动