使用Xamarin下载文件的正确方法?

时间:2018-01-05 07:10:44

标签: pdf xamarin xamarin.forms xamarin.ios xamarin.android

在我的Xamarin应用程序中,我使用服务器上的PDF.js显示带有WebView的PDF文件。我想为我的应用添加下载功能,以允许我的用户下载PDF文档。

我希望有一个下载按钮,按照Chrome下载文件的方式下载文件,包含通知输入和进度以及其他所有内容,以便用户具有与从网上下载文件相同的体验。

我该怎么做?我可以自己下载文件,但用户找不到它。

2 个答案:

答案 0 :(得分:3)

    byte[] bytes = new byte[0]; //your byte array

        using (StreamWriter streamWriter = new StreamWriter(FilePath, true))

        {
           BinaryWriter binaryWriter = new BinaryWriter(streamWriter.BaseStream);
           binaryWriter.Write(bytes);
        }

//As my file is in the path as shown below
var AppName = "MyApp";
var RootPath = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath;

var AppPath = System.IO.Path.Combine(RootPath, AppName);

if (!Directory.Exists(AppPath))
Directory.CreateDirectory(AppPath);

var FileName = $@"{mydoc.title}.{mydoc.doc_extension}";
var FilePath = Path.Combine(AppPath, FileName);

//You can give the user the option to open the file as shown below:

    var openFile= await DisplayActionSheet("Success", "open", "ok", "You have downloaded this document.");
     switch (openFile)
       {
           case "open":
           {
              Device.OpenUri(new Uri(FilePath));
              break;
           }
           case "ok":
           {
              break;
           }
       }

答案 1 :(得分:0)

这个问题相当广泛,开放性......说,我只会有一个简单的进度对话框,跟踪文件下载的进度,并在完成下载时显示通知,显示用户文件所在的位置实际下载,这样的事情可以帮助你:reference two