2017-08-31 4 views
0

Die Xamarin.Forms-Anwendung, die ich gerade entwickle, muss den Benutzer an einen bestimmten Ort senden, wobei er alle Kartenanwendungen verwendet, die er installiert hat.Eingabeaufforderung für Kartenanwendung

Ich möchte den Benutzer auffordern, eine beliebige Kartenanwendung auszuwählen, die er installiert hat (entweder native App - iOS Maps oder Android Google Maps oder eine andere Anwendung wie Waze).

Die Device.OpenUri(new Uri(request)); funktioniert gut, aber es öffnet nur die native App, ohne verfügbare Anwendungen anzuzeigen.

Gibt es eine Möglichkeit, das kann ich tun?

+0

Beachten Sie, dass einige Geräte ein "erzwungenes Standard" -Muster festlegen. Wenn der Benutzer eine Anwendung auswählt, um seine Standardanwendung für die Verarbeitung bestimmter Anforderungen zu werden, wird keine Eingabeaufforderung zugelassen. Ich glaube nicht, dass du das erzwingen kannst. – Digitalsa1nt

+0

Sie können einen Android-Service schreiben, um die Paket-ID zu erhalten, mit der eine URL geöffnet werden kann. Dies ist jedoch unter iOS nicht möglich. – SushiHangover

Antwort

3

In iOS gibt es keine Möglichkeit, eine Liste von Anwendungen zu erhalten, die Karten anzeigen.

auch immer Sie Ihre eigene Liste der Anwendung angezeigt werden können, die die Anzeige Karte DisplayActionSheet()

unterstützt die dann können Sie eine Anwendung aus dieser Liste ein- oder ausblenden, indem geprüft wird, ob Anwendung auf Benutzer-Gerät installiert ist oder nicht.

In iOS kann dies durch CanOpenURL()

documentation sehen erfolgen.

Beispiel,

Um zu überprüfen, ob Google Maps installiert ist oder nicht, können Sie

UIApplication.SharedApplication.CanOpenUrl(new NSUrl("comgooglemaps://")); 

tun, um es Sie arbeiten zu müssen es in info.plist Datei erklären, wie

<key>LSApplicationQueriesSchemes</key> 
<array> 
<string>comgooglemaps</string> 
</array> 
Verwandte Themen