我有以下代码获取地理位置并发布它,然后在div中显示一个按钮。这适用于桌面,但在android中不起作用,这是本网站提到的常见问题。建议是添加
{frequency:5000, maximumAge: 0, timeout: 100, enableHighAccuracy:true}
到下面的某个地方的代码,我试过几个地方只是停止工作,我在哪里放这些值?
function getCoordPosition() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
function (position) {
$.ajax({
type: "POST",
url: "{{path('login_log_location')}}",
data: {
latitude: position.coords.latitude,
longitude: position.coords.longitude
},
success: function () {
$("#divputinarea").html("{{path('login_log_yourarea')}}">
<button class="btn btn-large btn-primary">
Find </button>');
}
});
});
}
}
根据下面的建议我尝试了以下内容,它没有{maximumAge:0,timeout:100,enableHighAccuracy:true},如果我添加它我得到错误'geolocation.getCurrentPosition的参数2不可调用“
function getCoordPosition() {
if (navigator.geolocation) {
function getPosition(position) {
$.post("{{path('login_log_location')}}", {
latitude:position.coords.latitude,
longitude:position.coords.longitude })
.done(function(data) {
$("#divputinarea").html('<form method=post action="
{{path('login_log_yourarea')}}"><button class="btn btn-large
btn-primary">Find your nearest matches</button>');
});
}
navigator.geolocation.getCurrentPosition(getPosition, {
maximumAge: 0,timeout: 100,enableHighAccuracy:true} );
}
}
</script>
答案 0 :(得分:0)
getCurrentPosition方法有三个参数:成功回调,错误回调和包含配置参数的对象。
navigator.geolocation.getCurrentPosition(
successCallback,
errorCallback,
{frequency:5000, maximumAge: 0, timeout: 100, enableHighAccuracy:true}
);
这里是jsfiddle。
编辑:您可以修改代码以定义这三个参数。
function getPosition(position) {
$.post("{{path('login_log_location')}}", {
latitude:position.coords.latitude,
longitude:position.coords.longitude })
.done(function(data) {
$("#divputinarea").html('<form method=post action="
{{path('login_log_yourarea')}}"><button class="btn btn-large
btn-primary">Find your nearest matches</button>');
});
}
function onError(positionError) {
// error handling goes here
}
function getCoordPosition() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
getPosition, // success callback
onError, // error callback
{maximumAge: 0,timeout: 100,enableHighAccuracy:true} // extra params
);
}
}