Google карты RefererNotAllowedMapError в приложении Electron - PullRequest
0 голосов
/ 31 августа 2018

При использовании приложения Google Maps, упакованного с приложением Electron, я сталкиваюсь с ошибкой RefererNotAllowedMapError от Google, которая означает, что URL-адрес текущего приложения не может выполнять запросы к картам Google с использованием текущего APIKey. Теоретически мы можем занести в белый список домены приложений или установить подстановочный знак (который я хотел бы опустить) на панели Google.

Я пробовал несколько вещей:

  • разрешает запросы от file: /// на панели карт Google, но 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 голосов
/ 03 сентября 2018

Согласно документации Google Maps JavaScript API:

file: // реферерам необходимо добавить специальное представление в ограничение Key. Часть «file: /» должна быть заменена на «__file_url__» перед добавлением в ограничение Key. Например, «file: /// path / to /» должен быть отформатирован как «__file_url __ // path / to / *». После включения file: // referers рекомендуется регулярно проверять свое использование, чтобы убедиться, что оно соответствует вашим ожиданиям.

источник: https://developers.google.com/maps/documentation/javascript/get-api-key#key-restrictions

Итак, в вашем случае для file:///web/#/ path вы должны определить ограничение HTTP-реферера как

__file_url__//web/*

Надеюсь, это поможет!

...