应用安装程序文件 API 问题

JavaScript 对 应用安装程序 API 的支持

Windows SDK 中的 PackageManagerPackage 类提供了一些方法,可用于通过 应用安装程序 文件添加或修改包,或者检索具有关联应用安装程序的信息。 有关详细信息,请参阅相关文档

在这些方法中, JavaScript 不支持 PackageManager.AddPackageByAppInstallerFileAsyncPackageManager.RequestAddPackageByAppInstallerFileAsyncPackage.CheckUpdateAvailabilityAsync 。 但是,可以创建一个Windows 运行时调用这些方法的组件,然后从 JavaScript UWP 应用调用此组件。

下面是一个示例。

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;
        });
    }
}