如何下载Xamarin.Forms中的文件?



大家好!我被一个问题难住了。出于某些原因,我们决定为游戏制作自己的启动器,它将检查其版本并下载游戏的.apk来安装。我们的团队中没有xamarin开发人员,所以我被要求亲自尝试。被困在下载的第二天。我安装了NuGet插件下载管理器,试图使用它,没有成功。一些印度人的视频也没帮到我。我可以制作一款游戏,但在手机开发方面却一塌糊涂。我该怎么办?

我试着:

  1. 使用EventHandler创建downloader (url, folder),这没有帮助
  2. 使用插件与这些代码。链接到一个按钮上。这对我也没有帮助。你的帮助会救我的命
void DownloadFile() 
{
var downloadManager = CrossDownloadManager.Current;
var file = downloadManager.CreateDownloadFile("someURIGodSaveMe");
downloadManager.Start(file);
}

你不需要什么特别的在Xamarin的下载文件。表格,好旧的HttpClient完成工作。

这段代码从URL下载一个文件到应用程序的内部存储。更多关于Environment.SpecialFolder.PersonalXamarin的。形式。

private async Task DownloadApkAsync()
{
var downloadedFilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "myApp_v1.2.3.apk");
var success = await DownloadFileAsync("https://www.myapp.com/apks/v1.2.3.apk", downloadedFilePath);
if (success)
{
Console.WriteLine($"File downloaded to: {downloadedFilePath}");
}
else
{
Console.WriteLine("Download failed");
}
}
private async Task<bool> DownloadFileAsync(string fileUrl, string downloadedFilePath)
{
try
{
using var client = new HttpClient();
var downloadStream = await client.GetStreamAsync(fileUrl);
using var fileStream = File.Create(downloadedFilePath);
await downloadStream.CopyToAsync(fileStream);
return true;
}
catch (Exception ex)
{
//TODO handle exception
return false;
}
}

我还发现了这个在Xamarin中下载大文件的非常好的教程。表格,如果你想更花哨(但还没有尝试过)。它支持下载进度条和取消。

最新更新