AppleサポートAppおよびYouTubeチャンネルのお知らせ

* iOS向けAppleサポートAppのバージョン5.6.1が公開されました。

YouTube - Apple Japanチャンネルで有用なヒントや使い方を配信中です。

コミュニティでの投票方法と通知設定

コミュニティでの投票方法や通知の設定方法に関する記事を公開しました。

Apple Account(Apple ID)の不正利用を確認する方法

Apple Accountに関するよくある質問についてはこちらのページを、また不正利用を確認する方法についてはこちらのドキュメントをご参照ください。

しばらく返答が寄せられていないようです。 再度ディスカッションを開始するには、新たに質問してください。

iOS6でGeolocation APIが動かない?

iOS上で動くWebアプリでHTML5のGeolocation APIを利用し、現在位置を定期的に捕捉しています。

このアプリがiOS5.1.1では問題ないのですが、iOS6以降で正しく動作しません。何か解決策はありますか?


watchPosition()を使用すると定期的に位置情報をチェックし、変化が起これば指定された処理(when_gps_is_updated)をコールします。初回起動時には問題なく動きます。しかし同じ処理を記述した別ページに画面遷移した場合、あるいは本体を一度サスペンドした後は動きが止まります。なお、GPSを使用した別のネイティブアプリ(Google Maps等)を起動すると再び動き出したりすることもあり、非常に動作が不安定(使い物になりません)です。



外国サイトの情報では、ホーム画面から起動したWebアプリでGeoLocation APIが動作しなくなる点が指摘されていますが、ブラウザを起動してからブックマーク経由で呼び出しても症状が再現してしまいます。


参考: https://discussions.apple.com/thread/4313850?start=0&tstart=0



iPad2 + iOS5.1.1 では問題なく、iPad3 + iOS6.1.2(6.0以降すべて)では正しく動きません。

Safali特有の問題かと疑いましたが、Chrome、あるいは Firefoxでも同様の症状が発生します。



ソースの一部を以下に公開します。表記中に出現するGPS_**** はグローバル変数です。
when_gps_is_updated() が成功時に起動する筈なのですが、これが呼び出されません。
この時、当然ですが、when_gps_is_error() も呼び出されていません。(成功している筈)



=== ここから ===


function ExecGPS() {


// GPSによる現在位置が利用可能な場合

if (window.navigator.geolocation) {

GPS_HANDLER = window.navigator.geolocation.watchPosition(

when_gps_is_updated,

when_gps_is_error,
{

enableHighAccuracy: GPS_HIGH_LV,

timeout: GPS_TIMEOUT,

maximunAge: GPS_MAX_AGE

}

);

return GPS_HANDLER;



// GPSによる現在位置が利用できない場合
} else {
return 0;
}


}


=== ここまで ===

iPad, iOS 6

投稿日 2013/02/22 16:10

返信

返信はありません。

iOS6でGeolocation APIが動かない?

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。