【发布时间】:2017-07-21 20:30:41
【问题描述】:
我知道,this problem 过去已经被举报过。
- Chrome navigator.geolocation.getCurrentPosition() error 403
- navigator.geolocation.getCurrentPosition always fail in chrome and firefox
- Network location provider at 'https://www.googleapis.com/' : Returned error code 403 in Webapp
但在 2015 年就解决了。现在又回到了 2017 年!
错误 (Geolocation Position Error, Code 2) 出现在 Chrome(版本 56.0.2924.87(64 位))中:
“https://www.googleapis.com/”的网络位置提供程序:已返回 错误代码 403。
错误代码 2
请注意:Chrome 需要 HTTPS 进行地理位置!
function getCoords() {
return new Promise(function(resolve, reject) {
if (navigator.permissions) {
navigator.permissions.query({
name: 'geolocation'
}).then(function(permission) {
switch (permission.state) {
case 'granted':
navigator.geolocation.getCurrentPosition(function(pos) {
resolve(pos.coords);
}, function(error) {
console.error('Error Code: ' + error.code + ' - ' + error.message);
});
break;
case 'prompt':
console.info('Check Geolocation Promt.');
navigator.geolocation.getCurrentPosition(function(pos) {
resolve(pos.coords);
}, function(error) {
console.error('Error Code: ' + error.code + ' - ' + error.message);
});
break;
case 'denied':
default:
resolve(null);
break;
}
});
} else {
reject(new DOMError('NotImplemented', 'Permission API is not supported'));
}
});
}
function locate() {
if (typeof Promise !== "undefined" && Promise.toString().indexOf("[native code]") !== -1) {
getCoords().then(function(coords) {
if (coords !== null) {
console.log(coords);
document.getElementById('coords').value = coords.latitude + ', ' + coords.longitude;
} else {
console.warn('No coords returned :/');
}
});
} else {
console.warn('This browser doesn\'t support geolocation.');
}
}
<button onclick="javascript:locate()">Locate me</button>
<input type="text" id="coords" readonly/>
此 Google Maps API 示例中的问题似乎相同:https://developers.google.com/maps/documentation/javascript/examples/map-geolocation
【问题讨论】:
-
解决方案检查我的答案stackoverflow.com/questions/32328133/…
标签: google-maps google-chrome geolocation