电子地理定位网络定位提供商

问题描述 投票:0回答:1

所以我得到了这个代码:

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

提前致谢!

node.js express electron
1个回答
0
投票

我也遇到了同样的错误。 解决方案: 您必须设置正确的 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');
        }
    });
© www.soinside.com 2019 - 2024. All rights reserved.