0

Javascript geolocation API を使用すると、ユーザーは次のように求められます。

「現在の場所を使用しますか?」

次の 3 つのことが発生する可能性があります。

1) ユーザーが [OK] を選択 2) ユーザーが [許可しない] を選択 3) エラーまたはタイムアウトが発生

(1) と (3) はコールバックで非同期に管理できますが、(2) はできないため、利用可能な API は現在不足しているようです。

navigator.geolocation.getCurrentPosition(
        function(position) {
            alert("You pressed OK");
        },
        function(error) {
            alert("There is an error");
        }
);

(2)の場合、特定の操作を行いたいとします。これをどのように検出できますか?

4

2 に答える 2

0

すべてのケースは、エラー コールバックによって処理できます。

navigator.geolocation.getCurrentPosition(success, error, options)

パラメーター

...

  • error オプション

    PositionErrorオブジェクトを唯一の入力パラメーターとして受け取るオプションのコールバック関数。

...

PositionError

PositionErrorオブジェクトは、次のプロパティを持つ任意の JavaScript オブジェクトです。

...

  • code

    エラー コードを表す数値。(1) アクセス権が拒否された、(2) 位置が利用できない、または(3) タイムアウトのいずれかです。

...

https://developer.mozilla.org/en-US/docs/Web/API/window.navigator.geolocation.getCurrentPosition

例:

navigator.geolocation.getCurrentPosition(..., function (e) {
    switch (e.code) {
        case 1 : // permission denied
        case 2 : // position unavailable
        case 3 : // timeout
    }
});
于 2013-05-22T13:41:50.080 に答える