0

Firefox Mobile / Firefox OS 用の Web アプリを作成しました。私のアプリは位置情報を使用しています。

アプリケーションの Web アドレスにアクセスして、Android 版 Firefox と FFOS シミュレータ アドオンでテストしたところ、うまく機能しました。最近、Firefox Marketplace のレビューに合格し、アプリは FFOS と Firefox for Android にインストール可能になりました。驚いたことに、インストールして実行したところ、地理位置情報が機能しませんでした。

.webapp ファイルからの抜粋を次に示します。

"permissions": {
    "geolocation": {
        "description": "Required for ....."
    }
}

JSの関連部分は次のとおりです。

if(navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(positionFound, positionNotFound, {
        enableHighAccuracy: false,
        maximumAge: 3600000
    });
}
else {
    $('#location').html('No geolocation support');
}

elseブロックは実行されないため、JS は位置情報が存在することを検出しますが、コールバックが呼び出されることはなく、GPS アイコンが点滅することもありません。

アプリは引き続き機能し、インストールされたアプリとしてではなく、URL を介してアクセスすると positionFound() が適切に呼び出されます。

インストール後に地理位置情報を取得するにはどうすればよいですか?

4

2 に答える 2

0

これは Mozilla Hacks ブログの投稿で、ジオロケーションのヒントとコツ、および一部の開発者デバイスの制限について説明しています。

https://hacks.mozilla.org/2013/10/who-moved-my-geolocation/

于 2013-11-06T17:05:48.357 に答える
0

次のコードは機能しますが、Geeksphone FFOS 1.2 ナイトリー ビルドと FFOS 1.0 の aGPS では GPS 機能が大幅に制限されています (最初の修正時間は 5 分程度)。geoLocation API では、デバイスを頻繁に再起動する必要があります。私たちにとっては、FFOS 1.1 がこれまでで最もうまく機能しました。アプリを起動する前に、「gpsDashboard」などの既存の GPS アプリのいずれかを使用してみてください。これにより、電話が機能していることがわかります。

function geo_success(position) {
 alert(position.coords.longitude);
}

function geo_error() {
 alert("Sorry, no position available.");
}

var geo_options = {
 enableHighAccuracy: true,
 maximumAge : 300000,
 timeout : 270000
};

navigator.geolocation.watchPosition(geo_success, geo_error, geo_options);

コールバック関数は偽のデータで適切に機能しますか?

于 2013-08-26T14:58:27.993 に答える