Проблемы с API установщика приложений
Поддержка JavaScript для API-интерфейсов файлов установщика приложений
Классы PackageManager и Package в пакете SDK для Windows предоставляют методы, которые можно использовать для добавления или изменения пакетов с помощью файлов установщика приложений или получения сведений о приложениях с сопоставлением установщика приложений. См. подробнее в документации по Установщику приложений.
Из этих методов PackageManager.AddPackageByAppInstallerFileAsync, PackageManager.RequestAddPackageByAppInstallerFileAsync и Package.CheckUpdateAvailabilityAsync не поддерживаются в JavaScript. Однако вы можете создать компонент среда выполнения Windows, который вызывает эти методы, а затем вызвать этот компонент из приложения UWP JavaScript.
Ниже приведен пример.
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;
});
}
}