如何在Xamarin.Forms中本地启动外部应用程序?

Mag*_* Xy 3 c# cross-platform xamarin xamarin.forms

正如问题标题所示,我正在寻找一种从Xamarin.Forms应用程序中启动外部应用程序的方法.例如,我的应用程序有一个地址列表,当用户点击其中一个地址时,将打开当前平台的内置地图应用程序(Google Maps for Android,Apple Maps for iOS).如果重要,我只针对Android和iOS.

当然,我可以使用依赖服务并在每个平台的基础上编写应用程序启动代码,但我更愿意,如果我只需要编写一次.是否有一种本地方式在Xamarin.Forms中执行此操作?我无法在Xamarin网站或论坛上找到任何正式记录的内容.

Jas*_*son 9

使用Device.OpenUri并将相应的URI与Device.OnPlatform结合使用,以格式化每个平台的URI

string url; 

Device.OnPlatform(iOS: () =>
  {
     url = String.Format("http://maps.apple.com/maps?q={0}", address);
  },
  Android: () =>
  {
    url = String.Format("http://maps.google.com/maps?q={0}", address);
  });

Device.OpenUri(url);
Run Code Online (Sandbox Code Playgroud)