所以我得到了这个代码:
navigator.geolocation.getCurrentPosition(console.log, console.error, {timeout:5000});
它返回以下错误:
GeolocationPositionError {code: 2, message: "Network location provider at
'https://www.googleapis.com/' : No response received."}
code: 2 message: "Network location provider at 'https://www.googleapis.com/' : No response received."
我似乎没有找到任何解决方案。我已经尝试设置
process.env.GOOGLE_API_KEY = config.GoogleAPIKeys.GeolocationAPI;
(配置部分是正确的,我仔细检查了它)
我还切换到了 ssl (https) 并添加了这个以便电子显示它
app.commandLine.appendSwitch('ignore-certificate-errors', 'true');
提前致谢!
我也遇到了同样的错误。 解决方案: 您必须设置正确的 API 密钥来启用 geoLocation API。您可以检查它是否启用 https://console.cloud.google.com/apis/library/geolocation.googleapis.com?pli=1&project=Your_PROJECT_NAME
在 main.js 中,在 createWindow() 之前添加 process.env.GOOGLE_API_KEY
app.whenReady().then(() => {
process.env.GOOGLE_API_KEY = 'AIz__________________';
createWindow();
});
然后在您的工作文件中添加以下代码以获取坐标。此代码还将检查访问 geolocation 的权限。
navigator.permissions.query({ name: 'geolocation' }).then(function(permissionStatus) {
if (permissionStatus.state === 'granted') {
console.log('Geolocation permission granted');
navigator.geolocation.getCurrentPosition(function(position) {
console.log("Latitude: " + position.coords.latitude);
console.log("Longitude: " + position.coords.longitude);
}, function(error) {
// Handle error
console.error("Error getting location:", error);
});
} else if (permissionStatus.state === 'prompt') {
//promptGeolocationPermission();
console.log('Geolocation permission prompt');
} else if (permissionStatus.state === 'denied') {
console.log('Geolocation permission denied');
}
});