在Xamarin中使用Device.OpenUri(uri)在浏览器中打开ftp链接时,应用程序崩溃

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Xamarin中使用Device.OpenUri(uri)在浏览器中打开ftp链接时,应用程序崩溃相关的知识,希望对你有一定的参考价值。

我目前正在实施Xamarin应用程序的一部分,该应用程序需要在单击URL后在浏览器中打开链接。我需要添加对http,https,ftp和ftps的支持。我们的应用程序使用.NET Standard 1.6(因此,不能使用WebClient Class或FtpWebRequest类)。

Device.OpenUri(uri)适用于iosandroid中的http和https。但只适用于iOS for ftp链接。使用Android,应用程序崩溃与ftp链接。

对于ftp的文件链接,我设法使用FluentFTP(version =“23.1.0”)下载文件。

现在我需要添加对目录结构的ftp链接的支持,以在浏览器中打开该目录结构。 (与Chrome浏览器的默认行为一样)

我试过了:

  • Device.OpenUri(S)
  • 通过创建一个intent(不适用于ftp)
答案

你应该做的是如下:

  • 为Android的Dependency Service创建一个界面。 public interface IWebFTPClient<T> { Task<T> MakeFtpRequestAsync(); //Add Parameters if needed }
  • 然后调用依赖服务方法: DependencyService.Get<IWebFTPClient<YourType>>().MakeFtpRequestAsync();

注意:上面的代码是一个示例,可能需要根据您的需要进行更改

  • 由于FtpWebRequest在原生android中可用,请使用如下内容: FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri);

祝好运

如果您有疑问,请恢复

以上是关于在Xamarin中使用Device.OpenUri(uri)在浏览器中打开ftp链接时,应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Xamarin 中使用 SetAction

在 iOS 上的 Xamarin.Forms.Maps 中使用 Xamarin.Essentials Geolocation 获取设备位置的奇怪问题

如何使用 Xamarin.Forms.Maps(无 Xamarin.Forms.GoogleMaps)在地图中应用样式或更改颜色

是否可以在 Xamarin 表单中使用图像集

在 Xamarin.Forms 中使用 Android 绑定

为啥我应该在 Xamarin 中使用可移植类库?