通知

AppStudio AppFramework は、アプリの範囲外であるオペレーティング システム レベルで、アプリのユーザーに警告や通知を行うツールを含む Notifications プラグインを提供します。

この機能の例については、ArcGIS AppStudio または AppStudio サンプル GitHub リポジトリにあるサンプル アプリをご覧ください。

ローカル通知

LocalNotification コンポーネントは、エンド ユーザーへの通知を実装するための機能を提供します。ローカル通知は、外部のクラウド サービスから発信されるプッシュ通知と異なり、アプリから発信され、内部で始動します。LocalNotification コンポーネントを使用するには、まず次のインポート ステートメントを含める必要があります。

import ArcGIS.AppFramework.Notifications.Local 1.0

ローカル通知には、スケジュールを設定するために次の 3 つのパラメーターが必要です。

  • メッセージのタイトル
  • メッセージの内容
  • 通知を表示するまでの遅延時間 (ミリ秒)

これらのパラメーターは、schedule メソッドで処理されます。このメソッドは、指定したミリ秒後に通知を始動するように設定し、その通知の ID を提供します。この ID は、通知を削除するために clear メソッドで使用されます。

いったん通知のスケジュールを設定したら、アプリは通知を表示するためにフォーカスを得る必要がなく、実行中である必要すらありません。次のサンプル コードは、クイック レポート テンプレートに基づくもので、ユーザーがフォローアップ レポートを送信することを忘れないように、レポートが送信された 1 時間後に 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 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 デバイスではバイブレーションは 1 秒間持続し、他のデバイスではシステムのデフォルトが使用されます。


このトピックの内容
  1. ローカル通知
  2. バイブレーション