2017-10-18 4 views

Antwort

1

Die Seiten, die Sie laden können, Skripts, die Sie laden können usw., werden jetzt von CSP (Content Security Policy) gesteuert und nicht nur vom alten WhiteList-Mechanismus in der Datei config.xml. Also, wenn Sie auf Seiten zugreifen möchten, müssen Sie Ihre Content Security Policy appropriately einrichten. Um Google Maps zu verwenden, müssen Sie mindestens google.com zu den Standarddaten src, gstatic.com hinzufügen. Diese Optionen reichen möglicherweise nicht aus. Wenn Sie nicht die einzige Möglichkeit sehen, die Fehler in der Entwicklerkonsole zu sehen, finden Sie unter here Informationen zur Chrome Developer Console unter Android und here unter iOS. Ich finde immer eine Menge Versuch und Irrtum, um CSP richtig einzustellen.

<meta http-equiv="Content-Security-Policy" content="default-src 'self' google.com data: gap: https://ssl.gstatic.com; style-src 'self' 'unsafe-inline' google.com; media-src *"> 

Das heißt, Sie wollen wahrscheinlich nicht Google Maps Kontrolle Ihrer Anwendung (oder ein Sie vielleicht tun?), So dass andere Empfehlungen, um die In-App-Browser-Plugin zu verwenden, wäre zu empfehlen. Es ist das Hinzufügen nur eine plugin und einige Javascript verwendet das Fenster zu öffnen:

cordova.InAppBrowser.open('https://www.google.com/maps/dir/?api=1&origin=43.9815648,7.5328161&destination=41.802425,12.6021389', '_blank', 'location=yes'); 
+0

Wo fügen Sie die erste Codezeile ein, die Sie gepostet haben? In der Datei index.html oder woanders? –

+1

@PieroAlberto Ja, es geht in den Kopf der Indexdatei. Wenn Sie ein neues cordova/phonegap-Projekt erstellen ("cordova create newproject"), wird ein Beispiel index.html erstellt, das Sie betrachten können. Sie müssen den CSP jedoch entsprechend Ihren Anforderungen anpassen. –

+0

Ich habe diese Fehlermeldung, wenn ich Ihre CSP-Einstellungen verwende: "Abgelehnt, um eine Zeichenfolge als JavaScript zu bewerten, da 'unsafe-eval' in der folgenden Richtlinie zu Inhaltssicherheitsrichtlinien keine zulässige Skriptquelle ist:" default-src 'self' google .com Daten: Lücke: https://ssl.gstatic.com ". Warum? –

1

Sie können Ihre Cordova/PhoneGap Blick auf eine Seite woanders gehostet nicht umleiten (wie auf Ihrem Telefon entgegengesetzt) ​​aus Sicherheitsgründen, so haben Sie zwei Möglichkeiten:

  1. ein Cordova/PhoneGap-Plugin verwenden für Google Maps wie: https://www.npmjs.com/package/cordova-plugin-googlemaps

  2. Verwenden Sie die Cordova/PhoneGap in-App-Browser-Plugin Ihre Karte in einem Vollbild-Browser-Fenster in Ihrer App zu starten: https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-inappbrowser/

Option # 1 wäre die bevorzugte Option.

+0

Meine Lösung mit älterem phonegap verwendet zu arbeiten, so, denke ich, ist dies ein neues Feature der letzten Version. Kann ich mit der Option # 1 eine Reiseroute öffnen? –

+0

Ich sehe Sie haben Daten = und die Dokumentation für # 1 sagt, dass google.maps.Data nicht verfügbar ist. In diesem Fall sollten Sie Option # 2 ausprobieren und Ihre URL beibehalten. –

+0

upvote für Punkt 2) –

0

Wenn Sie die Google Maps App starten möchten (im Gegensatz zu Google Maps in Ihre App einbetten, d. H. cordova-plugin-googlemaps), können Sie das phonegap-launch-navigator Plugin verwenden.

+0

Schöne Idee. Beachten Sie, dass dies nur funktioniert, wenn Google Maps als App installiert wird. –

Verwandte Themen