首页 > 解决方案 > 如何使 Xamarin Forms 应用程序自动更新?

问题描述

我正在开发一个 xamarin 表单应用程序,它需要在不使用应用程序市场解决方案(Play Store、App Center...)的情况下自动更新。

我已经进行了大量搜索,从概念上讲,它应该如下所示:

  1. 该应用程序应从 Web 服务下载 .apk 文件;
  2. 必须创建某种服务才能删除当前应用程序版本并安装下载的应用程序。

当我在浏览器中发出请求时,我的 WebAPI 运行良好。我只需要一些 C# 源代码即可在 android 设备中下载和安装 .apk 文件。

标签: c#androidxamarinasp.net-web-apixamarin.android

解决方案


正如您所说,首先您下载 de APK,然后,只需启动安装下载文件的意图。您可以调整存储位置和文件名

public void DownloadFile(string m_uri, string m_filePath)
{
    var webClient = new WebClient();

    webClient.DownloadFileCompleted += (s, e) =>
    {
        string error = e.Error.Message;
        //var bytes = e.Result; // get the downloaded data
        string documentsPath = Android.OS.Environment.ExternalStorageDirectory + "/download/";


        Intent promptInstall = new Intent(Intent.ActionView).SetDataAndType(Android.Net.Uri.FromFile(new Java.IO.File(Android.OS.Environment.ExternalStorageDirectory + "/download/" + "FileName.apk")), "application/vnd.android.package-archive");
                promptInstall.AddFlags(ActivityFlags.NewTask);
                StartActivity(promptInstall);    
            };

        var url = new System.Uri(m_uri);

        webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(DownloadProgressCallback);
        webClient.DownloadFileAsync(url, Android.OS.Environment.ExternalStorageDirectory + "/download/FileName.apk");

     }
}

推荐阅读