我有一个navigator.permissions.query是而不是在工作
function handlePermission() {
navigator.permissions.query({name:'geolocation'}).then(function(result) {
if (result.state == 'granted') {
report(result.state);
geoBtn.style.display = 'none';
} else if (result.state == 'prompt') {
report(result.state);
geoBtn.style.display = 'none';
navigator.geolocation.getCurrentPosition(revealPosition,positionDenied,geoSettings);
} else if (result.state == 'denied') {
report(result.state);
geoBtn.style.display = 'inline';
}
result.onchange = function() {
report(result.state);
}
});
}
function report(state) {
document.getElementById("t").innerHTML = ('Permission ' + state);
}
handlePermission();我有一个活生生的例子这里,请检查我的代码,告诉我哪里出错了
发布于 2019-05-13 07:26:01
对于正在使用的函数,您应该再次阅读例句和医生们。在您的实际示例中的错误消息非常清楚。
navigator.geolocation.getCurrentPosition(revealPosition,positionDenied,geoSettings);您必须将正确/有效的参数传递给此函数。revealPosition是一个正在运行的函数,当用户授予地理位置时,positionDenied是一个正在运行的函数,当用户拒绝对地理位置的访问时,geoSettings是一个包含调用.getCurrentPosition的设置的对象。
因此,一旦创建了缺少的参数,而不是将未定义的引用传递给调用,该函数就会运行得很好。
https://stackoverflow.com/questions/56076122
复制相似问题