0

私は非常に奇妙な問題を抱えています。次のコードは、コンピューター上のすべてのブラウザーとIOSシミュレーター(すべてのデバイス)で機能しますが、自分のiPhone5またはiPad3(両方とも6.0.2を実行)では機能しません。

getLocation: function()
{   
    if(navigator.geolocation)
    {   console.log('It is supported');
        navigator.geolocation.getCurrentPosition(getPosition);
    }

    function getPosition(position)
    {
        console.log('You should see this :/');
        var coords = [];
            coords['longitude'] = position.coords.longitude;
            coords['latitude'] = position.coords.latitude;
            console.log(coords["longitude"]);
    }

デバッグすると、次のようになります。ブラウザ/ IOS-Simulatorではすべてのconsole.logメッセージが表示されますが、iPhone / iPadでは「サポートされています」と表示されるだけで、次の行は実行されません。私は何をすべきか?他のGeolocationsサイトを試してみると、うまくいきます...本当に奇妙です。

ここにテストサイトを設置しました。結果を教えてください。うまくいきますか? それが機能する場合は、経度を示すアラートポップアップが表示されます。 テストサイト(iPhone / iPadで試してみてください...)

4

1 に答える 1

0

さて、私は解決策を見つけました。iOS Safariに3回続けて許可を与えると、許可を求めるのをやめます。それが私の許可を求めるポップアップが表示されなかった理由を説明しています。iPhoneで復元([設定]->[復元]->[プライバシーの復元])を実行すると、機能しました。

しかし、どういうわけか、これはまだバグだと思います。3回続けて許可を与えた場合でも、getPosition関数は実行されますか?

于 2013-01-16T09:03:09.100 に答える