在使用与Electron应用程序打包在一起的google maps应用程序时,我面临Google的RefererNotAllowedMapError错误,这意味着当前应用程序url无法使用当前APIKey向Google Maps发送请求。 从理论上讲,我们可以在Google面板中将应用程序域列入白名单或设置通配符(我想省略)。
我尝试了很多事情:
使用设置引荐来源网址
Object.defineProperty(document, "referrer", {get : function(){ return "mydomain.com"; }});
在loadUrl中设置引荐来源网址-不走运
mainWindow.loadURL(url.format({
pathname: 'index.html',
protocol: 'file:',
slashes: true
}), {
httpReferrer: 'mydomain.com',
})
还有其他方法可以解决此问题吗?
答案 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/*
我希望这会有所帮助!