如何使Xamarin Forms App自动更新?

时间:2019-01-29 12:36:56

标签: c# android xamarin asp.net-web-api xamarin.android

我正在开发xamarin表单应用程序,需要在不使用应用程序市场解决方案(Play商店,App Center等)的情况下自动对其进行更新。

我已经进行了大量搜索,从概念上讲,它应该像下面这样工作:

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

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

1 个答案:

答案 0 :(得分:2)

如您所说,首先下载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");

     }
}