從啟動原生對應應用程式 Xamarin.Forms
每個平臺上的原生對應應用程式都可以由 Xamarin.EssentialsLauncher
類別從Xamarin.Forms應用程式啟動。 這個類別可讓應用程式透過其自定義 URI 配置開啟另一個應用程式。 您可以使用 方法叫用 OpenAsync
啟動器功能,傳入 string
或 Uri
自變數,代表要開啟的自定義 URL 配置。 如需 Xamarin.Essentials 的詳細資訊,請參閱Xamarin.Essentials。
注意
使用 Xamarin.EssentialsLauncher
類別的替代方法是使用其 Map
類別。 如需詳細資訊,請參閱 Xamarin.Essentials:對應。
每個平臺上的地圖應用程式都會使用唯一的自定義 URI 配置。 如需 iOS 上地圖 URI 配置的相關信息,請參閱 developer.apple.com 上的地圖連結 。 如需 Android 上地圖 URI 配置的詳細資訊,請參閱 地圖 開發人員指南和 Google 地圖 Android developers.android.com 意圖。 如需 通用 Windows 平台 上地圖 URI 配置的相關信息(UWP),請參閱啟動 Windows 地圖 應用程式。
在特定位置啟動地圖應用程式
您可以將適當的查詢參數新增至每個地圖應用程式的自訂 URI 配置,以開啟原生地圖應用程式中的位置:
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");
}
此範例程式代碼會導致在每個平台上啟動原生地圖應用程式,而地圖會置中於代表指定位置的釘選上:
使用指示啟動地圖應用程式
原生地圖應用程式可以啟動顯示方向,方法是將適當的查詢參數新增至每個地圖應用程式的自定義 URI 配置:
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");
}
此範例程式代碼會導致在每個平台上啟動原生地圖應用程式,地圖會以指定位置之間的路線為中心: