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

日本語の Summer '24 ガイドが公開されました! 「Component Reference (コンポーネントリファレンス)」は、以前と同様にコンポーネントライブラリにあります。