Suche…


Bemerkungen

Wenn Sie Ihr Projekt auf einem anderen Computer ausführen, müssen Sie dafür einen neuen API-Schlüssel generieren, da SHA-1-Fingerabdrücke nicht für verschiedene Build-Maschinen passen.

Sie können das Projekt erkunden, wie im Beispiel Hinzufügen einer Karte in Xamarin.Forms hier beschrieben

Hinzufügen einer Karte in Xamarin.Forms (Xamarin Studio)

Sie können die nativen Karten-APIs auf jeder Plattform einfach mit Xamarin Forms verwenden. Sie müssen lediglich das Xamarin.Forms.Maps- Paket von nuget herunterladen und in jedem Projekt (einschließlich des PCL-Projekts) installieren.

Karteninitialisierung

Zunächst müssen Sie diesen Code zu Ihren plattformspezifischen Projekten hinzufügen. Dazu müssen Sie den Methodenaufruf Xamarin.FormsMaps.Init hinzufügen, wie in den folgenden Beispielen.


iOS-Projekt

Datei AppDelegate.cs

[Register("AppDelegate")]
public partial class AppDelegate : Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{
    public override bool FinishedLaunching(UIApplication app, NSDictionary options)
    {
        Xamarin.Forms.Forms.Init();
        Xamarin.FormsMaps.Init();

        LoadApplication(new App());

        return base.FinishedLaunching(app, options);
    }
}

Android-Projekt

Datei MainActivity.cs

[Activity(Label = "MapExample.Droid", Icon = "@drawable/icon", Theme = "@style/MyTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
    protected override void OnCreate(Bundle bundle)
    {
        TabLayoutResource = Resource.Layout.Tabbar;
        ToolbarResource = Resource.Layout.Toolbar;

        base.OnCreate(bundle);

        Xamarin.Forms.Forms.Init(this, bundle);
        Xamarin.FormsMaps.Init(this, bundle);

        LoadApplication(new App());
    }
}

Plattformkonfiguration

Auf einigen Plattformen sind zusätzliche Konfigurationsschritte erforderlich, bevor die Karte angezeigt wird.


iOS-Projekt

In iOS-Projekten müssen Sie nur 2 Einträge zu Ihrer Info.plist- Datei hinzufügen :

  • NSLocationWhenInUseUsageDescription Zeichenfolge mit Wert We are using your location
  • NSLocationAlwaysUsageDescription Zeichenfolge mit Wert Can we use your location NSLocationAlwaysUsageDescription

Info.plist-Datei


Android-Projekt

Um Google Maps verwenden zu können, müssen Sie einen API-Schlüssel generieren und ihn Ihrem Projekt hinzufügen. Folgen Sie den Anweisungen unten, um diesen Schlüssel zu erhalten:

  1. (Optional) Suchen Sie nach dem Speicherort des Keytool-Tools (Standard ist /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands ).

  2. (Optional) Öffnen Sie das Terminal und wechseln Sie zu Ihrem Keytool-Speicherort:

    cd /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands

  3. Führen Sie den folgenden keytool-Befehl aus:

    keytool -list -v -keystore "/Users/[USERNAME]/.local/share/Xamarin/Mono for Android/debug.keystore" -alias androiddebugkey -storepass android -keypass android

    Dabei ist [USERNAME] natürlich Ihr aktueller Benutzerordner. Sie sollten etwas Ähnliches in der Ausgabe erhalten:

    Alias name: androiddebugkey
    Creation date: Jun 30, 2016
    Entry type: PrivateKeyEntry
    Certificate chain length: 1
    Certificate[1]:
    Owner: CN=Android Debug, O=Android, C=US
    Issuer: CN=Android Debug, O=Android, C=US
    Serial number: 4b5ac934
    Valid from: Thu Jun 30 10:22:00 EEST 2016 until: Sat Jun 23 10:22:00 EEST 2046
    Certificate fingerprints:
             MD5:  4E:49:A7:14:99:D6:AB:9F:AA:C7:07:E2:6A:1A:1D:CA
             SHA1: 57:A1:E5:23:CE:49:2F:17:8D:8A:EA:87:65:44:C1:DD:1C:DA:51:95
             SHA256: 70:E1:F3:5B:95:69:36:4A:82:A9:62:F3:67:B6:73:A4:DD:92:95:51:44:E3:4C:3D:9E:ED:99:03:09:9F:90:3F
             Signature algorithm name: SHA256withRSA
             Version: 3
    
  4. In dieser Ausgabe benötigen wir lediglich den Fingerabdruck des SHA1-Zertifikats. In unserem Fall ist dies gleich:

    57:A1:E5:23:CE:49:2F:17:8D:8A:EA:87:65:44:C1:DD:1C:DA:51:95
    

    Kopieren oder speichern Sie irgendwo diesen Schlüssel. Wir werden es später brauchen.

  5. Gehen Sie zur Google Developers Console . In unserem Fall müssen Sie die Google Maps-Android-API hinzufügen. Wählen Sie sie also aus: Geben Sie hier die Bildbeschreibung ein

  6. Google fordert Sie auf, ein Projekt zu erstellen, um APIs zu aktivieren. Folgen Sie diesem Tipp und erstellen Sie das Projekt: Tipp, um ein Projekt zu erstellen Seite zum Erstellen eines Projekts

  7. Aktivieren Sie die Google Maps-API für Ihr Projekt: API aktivieren Nachdem Sie API aktiviert haben, müssen Sie Anmeldeinformationen für Ihre App erstellen. Folgen Sie diesem Tipp: Gehe zu Anmeldeinformationen

  8. Wählen Sie auf der nächsten Seite die Android-Plattform aus und tippen Sie auf "Welche Anmeldeinformationen benötige ich?" , erstellen Sie einen Namen für Ihren API-Schlüssel, tippen Sie auf "Paketnamen und Fingerabdruck hinzufügen", geben Sie Ihren Paketnamen und Ihren SHA1-Fingerabdruck aus Schritt 4 ein und erstellen Sie schließlich einen API-Schlüssel: Erstellen Sie Ihre API Um Ihren Paketnamen in Xamarin Studio zu finden, gehen Sie zu Ihrer .Droid-Lösung -> AndroidManifest.xml: Name des Android-Pakets

  9. Kopieren Sie nach der Erstellung den neuen API-Schlüssel (vergessen Sie nicht, die Schaltfläche "Fertig" zu drücken) und fügen Sie ihn in Ihre AndroidManifest.xml Datei ein: Beenden Sie den API-Schlüssel Datei AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:versionCode="1"
        android:versionName="1.0"
        package="documentation.mapexample">
        <uses-sdk
            android:minSdkVersion="15" />
        <application
            android:label="MapExample">
            <meta-data
                android:name="com.google.android.geo.API_KEY"
                android:value="AIzaSyBAg8X-t4pOIDDp3q5Ph45jKUIVjo_RnxU" />
            <meta-data
                android:name="com.google.android.gms.version"
                android:value="@integer/google_play_services_version" />
        </application>
    </manifest>        
    

    Sie müssen außerdem einige Berechtigungen in Ihrem Manifest aktivieren, um einige zusätzliche Funktionen zu aktivieren:

    • Zugriff auf groben Standort
    • Zugriff auf die Fine Location
    • Auf zusätzliche Befehle für den Standort zugreifen
    • Zugriff auf Mock Location
    • Zugriff auf den Netzwerkstatus
    • Zugang Wifi State
    • Internet

    Android-Berechtigungen Die letzten beiden Berechtigungen sind jedoch erforderlich, um Maps-Daten herunterzuladen. Lesen Sie über Android-Berechtigungen , um mehr zu erfahren. Das sind alle Schritte für die Android-Konfiguration.

    Hinweis : Wenn Sie Ihre App auf einem Android-Simulator ausführen möchten, müssen Sie die Google Play-Dienste darauf installieren. Befolgen Sie dieses Tutorial , um Play Services auf dem Xamarin Android Player zu installieren. Wenn Sie nach der Play Store-Installation kein Update für Google Play-Dienste finden, können Sie es direkt von Ihrer App aus aktualisieren, wo Sie von Kartendiensten abhängig sind


Hinzufügen einer Karte

Das Hinzufügen einer Kartenansicht zu Ihrem Crossplatform-Projekt ist recht einfach. Hier ist ein Beispiel, wie das geht (Ich verwende ein PCL-Projekt ohne XAML).


PCL-Projekt

Datei MapExample.cs

public class App : Application
{
    public App()
    {
        var map = new Map();
        map.IsShowingUser = true;

        var rootPage = new ContentPage();
        rootPage.Content = map;

        MainPage = rootPage;
    }
}

Das ist alles. Wenn Sie Ihre App jetzt auf iOS oder Android ausführen, wird die Kartenansicht angezeigt: Xamarin.Forms-Karten



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow