[英]How to check Device iPhone has set up App Google Maps in Xamarin.Forms?
我有一個問題是使用Google Maps打開地圖:
我的設備iPhone已設置App Google Maps,但按按鈕時我的應用程序鏈接到地圖應用程序以打開地圖。 設備打開Safari,請勿打開Google地圖。
我這樣嘗試: Xamarin表單-地圖-可以通過按鈕調用Google地圖嗎?
但是在代碼行:
var canOpenNative = UIApplication.SharedApplication.CanOpenUrl(NSUrl.FromString("comgooglemaps-x-callback://"));
我不能使用庫:` using Foundation ;
(構建應用程序將無法使用庫。)
我這樣嘗試: Xamarin.Forms-找不到“ Foundation”
但是當構建應用程序時,我不能使用Library Foundation進行構建。
因此,還有其他方法,如何檢查設備iPhone在Xamarin.Forms中設置App Google Maps?
謝謝!
如果您嘗試從共享代碼中使用Foundation程序集,則只能從iOS平台特定的項目中訪問它。
您可以使用依賴服務從共享代碼中調用平台特定的代碼。 請按照以下步驟創建依賴項服務,以檢查iPhone是否安裝了Google Maps:
步驟1:在共享代碼中創建接口
public interface IMapService
{
bool HasGoogleMapAvailable();
}
步驟2:現在在您的平台特定項目中; 現在,它是您的iOS項目。 創建將實現您創建的接口的服務:
[assembly: Dependency(typeof(MapService))]
namespace WorkingWithMaps.iOS
{
public class MapService:IMapService
{
public MapService()
{
}
public bool HasGoogleMapAvailable()
{
var result=UIApplication.SharedApplication.CanOpenUrl(NSUrl.FromString("comgooglemaps-x-callback://"));
return result;
}
}
}
步驟3:在您的共享代碼中,您可以使用該Dependency服務:
IMapService mapService = DependencyService.Get<IMapService>();
var isInstalled = mapService.HasGoogleMapAvailable();
Console.WriteLine("Google Map is installed :" + isInstalled);
步驟4:實際開啟地圖; 您可以使用Device.OpenUri,它將向用戶顯示彈出窗口,以從設備上所有已安裝的地圖應用程序中選擇任何一個:
var uri = new Uri("http://maps.google.com/maps?saddr=Google+Inc,+8th+Avenue,+New+York,+NY&daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York&directionsmode=transit");
Device.OpenUri(uri);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.