Google在Electron应用程序中映射RefererNotAllowedMapError

时间:2018-08-31 10:58:17

标签: google-maps google-maps-api-3 electron

在使用与Electron应用程序打包在一起的google maps应用程序时,我面临Google的RefererNotAllowedMapError错误,这意味着当前应用程序url无法使用当前APIKey向Google Maps发送请求。 从理论上讲,我们可以在Google面板中将应用程序域列入白名单或设置通配符(我想省略)。

我尝试了很多事情:

  • 允许来自Google Maps面板中File:///的请求,但Google表示“ file:///”不正确。问题在于电子中的路径有3个斜线
  • 使用插件(https://github.com/akameco/electron-referer)设置引荐来源网址-不走运
  • 使用设置引荐来源网址

    Object.defineProperty(document, "referrer", {get : function(){ return "mydomain.com"; }});
    
  • 在loadUrl中设置引荐来源网址-不走运

    mainWindow.loadURL(url.format({
        pathname: 'index.html',
        protocol: 'file:',
        slashes: true
    }), {
        httpReferrer: 'mydomain.com',
    })
    

还有其他方法可以解决此问题吗?

1 个答案:

答案 0 :(得分:1)

根据Google Maps JavaScript API文档:

  

file://引用者需要特殊的表示形式才能添加到Key限制中。在将“ file:/”部分添加到密钥限制之前,应将其替换为“ __file_url__”。例如,“ file:/// path / to /”的格式应为“ __file_url __ // path / to / *”。启用file://引荐来源后,建议您定期检查其用法,以确保其符合您的期望。

来源:https://developers.google.com/maps/documentation/javascript/get-api-key#key-restrictions

因此,对于您的file:///web/#/路径,应将HTTP引荐来源网址限制定义为

__file_url__//web/*

我希望这会有所帮助!