簡體   English   中英

如何檢查設備iPhone是否已在Xamarin.Forms中設置App Google Maps?

[英]How to check Device iPhone has set up App Google Maps in Xamarin.Forms?

我有一個問題是使用Google Maps打開地圖:

我的設備iPhone已設置App Google Maps,但按按鈕時我的應用程序鏈接到地圖應用程序以打開地圖。 設備打開Safari,請勿打開Goog​​le地圖。

我這樣嘗試: 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM