JQM (1.3.1)、jQuery(1.9)、CSS3、および JavaScript を使用して webapp を作成しました。現在、このアプリを phone gap (2.7) (ターゲット iOS(6.1)/ iPhone5 - 問題は iPhone 4S/ iOS 6.0 で再現できます
以下に示す私の位置情報コードは、ブラウザで実行すると正常に機能しました。
var geoOptions = { 'enableHighAccuracy': true, 'timeout': 10000, 'maximumAge': 0 };
navigator.geolocation.getCurrentPosition(geoSuccess, geoError, geoOptions);
function geoSuccess(postion)
{
//on success code here
}
function geoError(error)
{
//on error code here
}
ただし、phonegap を通過すると、アプリは位置情報サービスにアクセスするためのユーザー許可を 2 回要求しました。つまり、ポップアップが 2 回表示されました。したがって、stackoverflow の多くのソリューションで提案されているように、以下のコードを使用したことを解決するために。
function onDeviceReady() {
navigator.geolocation.getCurrentPosition(geoSuccess, geoError,geoOptions);
}
$(function() {
document.addEventListener("deviceready", onDeviceReady, false);
});
これにより、ポップアップの問題は解決されましたが、新しい問題が発生しました。
問題: 位置情報サービスが無効になっている場合、私のコードは deviceready リスナーを追加し、deviceready イベントが発生するのを待ちますが、イベントは発生せず、ただそこに留まります。位置情報サービスがオンになっている場合、期待どおりに機能します。
以前にこの問題に直面した人はいますか?解決するために何をしたか教えてください。デバッグと調査に 1 日費やす価値はあります。
よろしくお願いします。