Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die systemeigene Karten-App auf jeder Plattform kann über eine Xamarin.Forms Anwendung von der Xamarin.EssentialsLauncher Klasse gestartet werden. Diese Klasse ermöglicht es einer Anwendung, eine andere App über das benutzerdefinierte URI-Schema zu öffnen. Die Launcher-Funktionalität kann mit der Methode OpenAsync aufgerufen werden, wobei ein string- oder Uri-Argument übergeben wird, das das zu öffnende benutzerdefinierte URL-Schema darstellt. Weitere Informationen zu Xamarin.Essentials finden Sie unter Xamarin.Essentials.
Hinweis
Eine Alternative zur Verwendung der Klasse ist die Xamarin.EssentialsLauncher Verwendung der Map Klasse. Weitere Informationen finden Sie unter Xamarin.Essentials: Map.
Die Karten-App auf jeder Plattform verwendet ein eindeutiges benutzerdefiniertes URI-Schema. Informationen zum Karten-URI-Schema unter iOS finden Sie unter Kartenlinks auf developer.apple.com. Informationen über das Maps-URI-Schema unter Android finden Sie unter Maps Developer Guide und Google Maps Intents for Android auf developers.android.com. Informationen zum Karten-URI-Schema für die Universelle Windows-Plattform (UWP) finden Sie unter Starten der Windows-Karten-App.
Starten der Karten-App an einem bestimmten Ort
Ein Speicherort in der systemeigenen Karten-App kann geöffnet werden, indem dem benutzerdefinierten URI-Schema für jede Karten-App entsprechende Abfrageparameter hinzugefügt werden:
if (Device.RuntimePlatform == Device.iOS)
{
// https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/MapLinks/MapLinks.html
await Launcher.OpenAsync("http://maps.apple.com/?q=394+Pacific+Ave+San+Francisco+CA");
}
else if (Device.RuntimePlatform == Device.Android)
{
// open the maps app directly
await Launcher.OpenAsync("geo:0,0?q=394+Pacific+Ave+San+Francisco+CA");
}
else if (Device.RuntimePlatform == Device.UWP)
{
await Launcher.OpenAsync("bingmaps:?where=394 Pacific Ave San Francisco CA");
}
Dieser Beispielcode führt dazu, dass die systemeigene Karten-App auf jeder Plattform gestartet wird, wobei die Karte auf einem Pin zentriert ist, der die angegebene Position darstellt:
Starten der Karten-App mit Wegbeschreibungen
Die systemeigene Karten-App kann gestartet werden, indem Sie dem benutzerdefinierten URI-Schema für jede Karten-App geeignete Abfrageparameter hinzufügen:
if (Device.RuntimePlatform == Device.iOS)
{
// https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/MapLinks/MapLinks.html
await Launcher.OpenAsync("http://maps.apple.com/?daddr=San+Francisco,+CA&saddr=cupertino");
}
else if (Device.RuntimePlatform == Device.Android)
{
// opens the 'task chooser' so the user can pick Maps, Chrome or other mapping app
await Launcher.OpenAsync("http://maps.google.com/?daddr=San+Francisco,+CA&saddr=Mountain+View");
}
else if (Device.RuntimePlatform == Device.UWP)
{
await Launcher.OpenAsync("bingmaps:?rtp=adr.394 Pacific Ave San Francisco CA~adr.One Microsoft Way Redmond WA 98052");
}
Dieser Beispielcode führt dazu, dass die systemeigene Karten-App auf jeder Plattform gestartet wird, wobei die Karte auf einer Route zwischen den angegebenen Standorten zentriert ist:

