Problèmes liés à l’API du fichier d’installation d’application

Prise en charge JavaScript pour les API de fichier d’installation d’application

les classes PackageManager et Package de l’SDK Windows fournissent des méthodes que vous pouvez utiliser pour ajouter ou modifier des packages via des fichiers de programme d’installation d’application ou pour récupérer des informations sur les applications avec une association de programme d’installation d’application. Pour plus d’informations, consultez Documentation connexe.

Parmi ces méthodes, packagemanager. AddPackageByAppInstallerFileAsync, packagemanager. RequestAddPackageByAppInstallerFileAsyncet Package. CheckUpdateAvailabilityAsync ne sont pas pris en charge dans JavaScript. toutefois, vous pouvez créer un composant Windows Runtime qui appelle ces méthodes, puis appeler ce composant à partir d’une application JavaScript UWP.

Voici un exemple.

namespace CSRuntimeComponent
{
    public sealed class UpdateAvailabilityChecker
    {
        public static IAsyncOperation<PackageUpdateAvailability> CheckForUpdatesAsync()
        {
            return AsyncInfo.Run<PackageUpdateAvailability>((result) => Task.Run<PackageUpdateAvailability>(async () =>
            {
                PackageManager pm = new PackageManager();
                Package currentPackage = pm.FindPackageForUser(string.Empty, Package.Current.Id.FullName);
                PackageUpdateAvailabilityResult apiResult = await currentPackage.CheckUpdateAvailabilityAsync();

                if (apiResult.Availability == PackageUpdateAvailability.Error)
                {
                    Logger.Error($"Error occurred, extended code: {apiResult.ExtendedError}");
                }

                return apiResult.Availability;
            }));
        }
    }
}
window.onload = function () {
    document.getElementById('mainButton').onclick = function (evt) {
        CSRuntimeComponent.UpdateAvailabilityChecker.checkForUpdatesAsync().done(function (result) {
            document.getElementById("resultLabel").innerHTML = "Update availability result:" + result;
        });
    }
}