Ricerca…


Osservazioni

Se hai intenzione di eseguire il tuo progetto su un altro computer, dovrai generare una nuova chiave API per questo, poiché le impronte digitali SHA-1 non corrisponderanno per diversi computer di compilazione.

Puoi esplorare il progetto, descritto nell'esempio Aggiungere una mappa in Xamarin.Forms qui

Aggiunta di una mappa in Xamarin.Forms (Xamarin Studio)

Puoi semplicemente utilizzare le API native della mappa su ogni piattaforma con Xamarin Forms. Tutto ciò che serve è scaricare il pacchetto Xamarin.Forms.Maps da nuget e installarlo su ciascun progetto (incluso il progetto PCL).

Inizializzazione delle mappe

Prima di tutto devi aggiungere questo codice ai tuoi progetti specifici per la piattaforma. Per fare ciò devi aggiungere la chiamata al metodo Xamarin.FormsMaps.Init , come negli esempi qui sotto.


progetto iOS

File 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);
    }
}

Progetto Android

File 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());
    }
}

Configurazione della piattaforma

Sono necessari passaggi di configurazione aggiuntivi su alcune piattaforme prima che venga visualizzata la mappa.


progetto iOS

Nel progetto iOS devi solo aggiungere 2 voci al tuo file Info.plist :

  • NSLocationWhenInUseUsageDescription string with value We are using your location
  • NSLocationAlwaysUsageDescription string with value Can we use your location

File info.plist


Progetto Android

Per utilizzare Google Maps devi generare una chiave API e aggiungerla al tuo progetto. Segui le istruzioni qui sotto per ottenere questa chiave:

  1. (Facoltativo) Trova la posizione dello strumento keytool (l'impostazione predefinita è /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands )

  2. (Facoltativo) Apri il terminale e vai al tuo posto di keytool:

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

  3. Esegui il seguente comando keytool:

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

    Dove [USERNAME] è, ovviamente, la tua cartella utente corrente. Dovresti ottenere qualcosa di simile a questo nell'output:

    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. Tutto ciò di cui abbiamo bisogno in questo output è l'impronta digitale del certificato SHA1. Nel nostro caso è uguale a questo:

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

    Copia o salva da qualche parte questa chiave. Ne avremo bisogno in seguito.

  5. Vai a Google Developers Console , nel nostro caso dobbiamo aggiungere l' API di Google Maps per Android , quindi sceglierlo: inserisci la descrizione dell'immagine qui

  6. Google ti chiederà di creare un progetto per abilitare le API, seguire questo suggerimento e creare il progetto: Suggerimento per creare un progetto Pagina per creare un progetto

  7. Abilita l'API di Google Maps per il tuo progetto: Abilita API Dopo aver abilitato l'API, devi creare credenziali per la tua app. Segui questo suggerimento: Vai a Credenziali

  8. Nella pagina successiva scegli la piattaforma Android, tocca "Quali credenziali ho bisogno?" pulsante, crea un nome per la tua chiave API, tocca "Aggiungi nome pacchetto e impronta digitale", inserisci il nome del pacchetto e l'impronta digitale SHA1 dal punto 4 e infine crea una chiave API: Crea la tua API Per trovare il nome del tuo pacchetto in Xamarin Studio vai alla tua soluzione .Droid -> AndroidManifest.xml: Nome del pacchetto Android

  9. Dopo la creazione copia la nuova chiave API (non dimenticare di premere il pulsante "Fine" dopo) e incollalo nel tuo file AndroidManifest.xml : Termina la chiave API File 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>        
    

    Dovrai anche abilitare alcune autorizzazioni nel tuo manifest per abilitare alcune funzionalità aggiuntive:

    • Accesso alla posizione approssimativa
    • Accedi a Fine posizione
    • Accesso alla posizione Comandi extra
    • Access Mock Location
    • Accedi allo stato della rete
    • Access Wifi State
    • Internet

    Permessi Android Sebbene, per scaricare i dati di Maps sono necessarie le ultime due autorizzazioni. Leggi le autorizzazioni di Android per saperne di più. Ecco tutti i passaggi per la configurazione di Android.

    Nota : se vuoi eseguire la tua app su Android simulator, devi installare Google Play Services su di esso. Segui questo tutorial per installare Play Services su Xamarin Android Player. Se non riesci a trovare l'aggiornamento dei servizi di riproduzione di google dopo l'installazione del Play Store, puoi aggiornarlo direttamente dalla tua app, dove hai dipendenza dai servizi di mappe


Aggiungere una mappa

Aggiungere una vista mappa al tuo progetto crossplatform è abbastanza semplice. Ecco un esempio di come puoi farlo (sto usando un progetto PCL senza XAML).


Progetto PCL

File MapExample.cs

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

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

        MainPage = rootPage;
    }
}

È tutto. Ora se eseguirai la tua app su iOS o Android, ti mostrerà la vista della mappa: Xamarin.Forms Maps



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow