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

时间:2019-04-18 09:16:31

标签: android url xamarin.forms xamarin.android ftp

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

Device.OpenUri(uri)在iOS和Android中都可以与http和https正常工作。但仅适用于iOS的ftp链接。在Android上,应用程序崩溃并带有ftp链接。

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

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

我尝试过:

  • Device.OpenUri(uri),
  • 通过创建意图(不适用于ftp)

1 个答案:

答案 0 :(得分:0)

您应该做的事情如下:

  • 为您的Android依赖性服务创建接口。

    public interface IWebFTPClient<T>
    {
        Task<T> MakeFtpRequestAsync(); //Add Parameters if needed
    }
    
  • 然后调用去污服务方法:

    DependencyService.Get<IWebFTPClient<YourType>>().MakeFtpRequestAsync();
    

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

  • 由于FtpWebRequest在本机android中可用,因此请按以下方式使用它:

    FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri);
    

祝你好运

如果有查询则还原