2016-06-25 9 views
1

Ich habe eine Situation mit einer Anwendung, die ich eine Google Map bereitstellen, die in drei verschiedenen Standorten angezeigt werden können:Google Maps API Key Referrer für file: ///

  • In Anwendung Webview
  • Vorschau in Browser
  • an einen Server

Also muss ich der Benutzer veröffentlichte einige Referrer dort api Schlüssel hinzugefügt haben sie für die Zeit, die sie auf ihrem eigenen Server zu decken.

Sie können einen Verweis nur für die veröffentlichte Karte auf ihrem eigenen Server, und die Vorschau im Browser lokal Aspekte hinzufügen.

Aber ich kann nicht herausfinden, was Sie als Verweis für die Situation hinzufügen, wenn die Karte in der Webansicht der Anwendungen in der Vorschau angezeigt wird, und die URL für die Seite an diesem Punkt ist eine Datei: /// referenzierte URL?

Wenn wir alle Referrer für einen vollständigen Platzhalter-API-Schlüssel leer lassen, funktioniert dies in der Webansicht in der App.

Ich habe über so viele Konfigurationen versucht, wie ich für eine Referrer für Datei denken kann: /// url aber kein Glück:

Ich habe versucht:

Datei

Datei *

Datei/*

file: /// *

+0

Sie können nicht .. google maps funktionieren nur, wenn die Internet-Verbindung aktivieren ist und die Karten-Bibliothek sind über das Internet erhältlich .. – scaisEdge

+0

Leider Ich sollte beachten, dass es innerhalb der App Zugang zum Internet hat. Wenn ich einen vollständigen Wildcard-API-Schlüssel verwende, indem ich überhaupt keine Referrer hinzufüge, funktioniert er in der App mit der Datei: /// url. –

+0

Wenn Internet von Ihrer Anwendung zur Verfügung steht, dann shoudl funktionieren, aber was meinst du mit "Wenn ich eine komplette Wildcard-API-Schlüssel durch das Hinzufügen keine Referrer überhaupt funktioniert es" – scaisEdge

Antwort

1

Es se ems, die Sie nicht in der Lage sein werden, dieses Problem unter Verwendung file:/// als URL-Ursprung zu lösen. Sie erhalten immer den RefererNotAllowedMapError Fehler. Die Verwendung von file: /// als URL-Ursprung sagt mir, dass Sie versuchen, dies in einer lokalen Umgebung auszuführen. Ich schlage vor, Sie verwenden einen lokalen Server mit Python Simple HTTP server oder NodeJS local server.

Ich habe die Schritte zum Einrichten eines lokalen Python-Servers in diesem SO thread aufgelistet. Sie können damit Ihr Google Map-Beispiel ausführen.

UPDATE

Gute Nachrichten hat Google Unterstützung für die Datei hinzugefügt:/Referrer. Sie können den folgenden Text in der Dokumentation

file:// referers need a special representation to be added to the Key restriction. The "file:/" part should be replaced with "__file_url__" before being added to the Key restriction. For example, "file://path/to/" should be formatted as "__file_url__/path/to/*". After enabling file:// referers, it is recommended you regularly check your usage, to make sure it matches your expectations

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

+0

Akzeptiert als keine Referrer für einen URL-Ursprung der Datei: /// existiert. Ich bin ein Drittanbieter-Plugin für die Anwendung, so ändern diese URL zu localhost ist keine Option für mich. –

+0

Können wir irgendetwas tun, wenn wir nicht ändern können, wie wir den Ursprung laden? (in meinem Fall eine PhoneGap-App), oder stecken wir nicht einen Schlüssel oder einen Platzhalter verwenden? –