在FF OS上安装后,应用程序不会进行地理定位

时间:2013-08-08 14:29:36

标签: html5 firefox-os

我为Firefox Mobile / Firefox OS编写了一个Web应用程序。我的应用使用地理位置。

当我使用Firefox for Android和FFOS模拟器附加组件通过访问应用程序的Web地址进行测试时,它运行良好。最近我通过了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()被正确调用,而不是作为已安装的应用程序访问。

如何在安装后进行地理定位?

2 个答案:

答案 0 :(得分:0)

以下代码适用于我们,但GPS功能严重受限于Geeksphone FFOS 1.2夜间版本以及FFOS 1.0上的aGPS(首次修复时间约为5分钟)。 geoLocation API需要在我们的设备上频繁重新启动。对我们来说,FFOS 1.1目前效果最好。尝试使用现有的GPS应用程序,例如" gpsDashboard"在开始你的应用之前。这样你就知道你的手机正在工作。

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);

您的回调函数是否可以正常使用虚假数据?

答案 1 :(得分:0)

以下是Mozilla Hacks博客上的一篇文章,其中讨论了地理位置提示和技巧,以及一些开发者设备的限制:

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