2017-08-31 3 views
0

私が現在開発中のXamarin.Formsアプリケーションは、インストールしたマップアプリケーションを使用して特定の場所にユーザーを送信する必要があります。マップアプリケーションのプロンプトユーザー

あなたがインストールしたマップアプリケーション(ネイティブアプリ - iOSマップまたはAndroidのGoogleマップ、またはWazeなどの他のアプリケーションのいずれか)のいずれかを選択するように求めます。

Device.OpenUri(new Uri(request));はうまく動作しますが、使用可能なアプリを表示せずにネイティブアプリを開くだけです。

これを行う方法はありますか?

+0

一部のデバイスでは、「強制的なデフォルト」パターンが適用されることに注意してください。ユーザーが特定の要求を処理するための既定のアプリケーションになるアプリケーションを選択すると、プロンプトは表示されません。私はあなたがこれを強制できるとは思わない。 – Digitalsa1nt

+0

Android依存サービスを作成して、URLを開くことができるパッケージIDを取得することはできますが、iOSではこれを行うことはできません。 – SushiHangover

答えて

3

マップを表示するアプリケーションのリストを取得する方法はありません。

あなたは、あなたが表示されたり、アプリケーションがユーザーのデバイスにインストールされているかどうかをチェックすることによって、そのリストからアプリケーションを非表示にすることができますDisplayActionSheet()

を使用して地図表示をサポートするアプリケーションの独自のリストを表示することができますが。 iOS版で

これはCanOpenURL()

ことによって行うことができdocumentationを参照してください。 Googleマップは、あなたはそれはあなたが

のようにInfo.plistファイルでそれを宣言する必要があります動作させるために

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

を行うことができますインストールされているかどうか確認するには

例、

<key>LSApplicationQueriesSchemes</key> 
<array> 
<string>comgooglemaps</string> 
</array> 
関連する問題