3

phonegap で IOS アプリを開発していますが、読み込み時に位置情報サービスに対するユーザーの許可を取得したいと考えています。問題は、アプリを再開する (ホームを押してアプリをもう一度開く) か、数分待つまで、許可を求めるアラートが表示されないことです。これは受け入れられません。

私はdevicereadyイベントを次のように使用しています:

document.addEventListener("deviceready", deviceReady, false);
function deviceReady() {
navigator.geolocation.getCurrentPosition(onLocationSuccess,
                                         onLocationError
                                         );
}

deviceready を待たない場合、アラートは正常に表示されますが、次のようなメッセージが 2 回表示されます。

/var/mobile/Applications/XXXX-XXXX-XXXX-XXXXXXXXXXX/AppName.app/www/index.html would like to use your current location

これを機能させるためのアイデアはありますか?

4

4 に答える 4

0

あなたは問題を解決しましたが、以下は将来他の人に役立ちます.

iOSで権限ダイアログを表示するには、 config.xmlで以下を構成する必要があります。

<gap:config-file platform="ios" parent="NSLocationAlwaysUsageDescription" overwrite="false">
    <array>
      <string>NSLocationAlwaysUsageDescription</string>
    </array>
</gap:config-file>

私はこれを使用していますが、うまく機能します。

于 2014-12-03T12:46:29.493 に答える
0

iOSの許可ダイアログでは、 config.xmlでこのコードを使用します

<gap:config-file platform="ios" parent="NSLocationAlwaysUsageDescription" overwrite="false">
<array>
  <string>NSLocationAlwaysUsageDescription</string>
</array>

ユーザーがダイアログまたはアラートを閉じたときの問題に対して@AAhadを使用すると、オプションが使用可能であることを確認でき、GPSをアクティブにする必要がある場合は、リクエストで新しいアラートでユーザーと話すことができます。

document.addEventListener("deviceready", onDeviceReady, false);


function onDeviceReady() {
    navigator.geolocation.getCurrentPosition(onSuccess, onError);
}

// onSuccess Geolocation
//
function onSuccess(position) {
  //Code for your GPS
}

// onError Callback receives a PositionError object or if your user close de dialog or cancel de permission
//
function onError(error) {
        alert('Error please check your GPS on Settings: '    + error.code    + '\n' +
              'Please Active Your GPS' + error.message + '\n');
    }
于 2017-12-13T05:30:33.920 に答える