XML 設定ファイルの要素
HTML テンプレートディレクティブ
HTML テンプレートエラー
デコレータ
@salesforce モジュール
LocationService データ型
getLocationService()
isAvailable()
getCurrentPosition(options)
startWatchingPosition(options, callback)
stopWatchingPosition(watchId)
PageReference の型
startWatchingPosition(options, callback)モバイルデバイスの非同期位置情報更新を登録します。
この関数は、今後のリリースで廃止されます。フィードバックを基に、API の制限が多くのお客様の使用事例に適していないと判断しました。Android および iOS プラットフォームのさらなる制約が加わるため、方法を一から見直す必要があります。将来のリリースでこの API を置き換える可能性について現在検討中です。
Note
1import { getLocationService } from 'lightning/mobileCapabilities';
2startWatchingPosition(
3 options: LocationServiceOptions,
4 callback: (location: Location, error: LocationServiceFailure) => void
5): number;options — (必須) 場所の要求を設定するための LocationServiceOptions オブジェクト。callback — (必須) 位置情報更新の応答を処理する関数。位置情報の登録の整数値識別子。位置情報の更新の受信を停止したいときに、登録を終了するために使用します。
この機能は、重要な位置情報の更新への登録を作成します。この場合の「重要」かどうかはオペレーティングシステムによって判定されます。以下の使用方法に関する注意を参照してください。
startWatchingPosition() で位置情報の更新を受信するのは、更新を受信している間に、画面上に表示を残すコンポーネントに適しています。ユーザがモバイルアプリケーションをバックグラウンドに移動した場合、位置情報の追跡は直後に停止可能であり、多くの場合はすぐに停止します。ユーザがページから移動しても、モバイルアプリを開いたままにしている場合、コンポーネントは位置情報の更新を受信し続けることが可能です。ただし、フレームワークによって割り当てが解除される可能性もあります。
言い換えると、ユーザが同じページを表示し続けている間は、表示位置の追跡が期待どおりに機能します。ユーザがページやアプリから移動した場合の動作は定義されていません。
Important
1myLocationWatchId = 0;
2async startTracking() {
3 let locationService = getLocationService();
4 this.myLocationWatchId = await locationService.
5 startWatchingPosition({ enableHighAccuracy:false }, (result, error) => {
6
7 // Check for error first
8 if(error) {
9 console.error(error);
10 this.stopTracking();
11 }
12 else {
13 this.myLocation = result.coords;
14
15 // Do something with the updated location
16 // Refresh a map, upsert a record, or whatever
17 // needs to happen when a location change occurs
18 }
19 });
20}コールバック関数が最初にコールされ、getCurrentPosition() と同様に、現在の位置を提供します。その後、大きな位置の変化があるたびにコールされます。
watchId は、更新の受信を停止する準備ができたときに、stopWatchingPosition() のコールで使用するために保持します。Location オブジェクトを受け取り、エラーが発生した場合は、LocationServiceFailure を受け取ります。startWatchingPosition() で位置情報の登録を作成したときに割り当てられるリソースは、自動的に解放されません。stopWatchingPosition() をコールして、適切なタイミングでそれらのリソースを解放します。リソースの解放に失敗すると、(結果的に) エラーが発生する可能性があります。たとえば、オペレーティングシステムによってアプリケーションが終了される可能性があります。関連トピック
The Japanese Summer '24 guide is now live