앱 설치 관리자 파일 API 문제App Installer file API issues

앱 설치 관리자 파일 Api에 대 한 JavaScript 지원JavaScript support for App Installer file APIs

Windows SDK의 PackageManager패키지 클래스는 앱 설치 관리자 파일을 통해 패키지를 추가 또는 수정 하거나 앱 설치 관리자 연결을 사용 하 여 앱에 대 한 정보를 검색 하는 데 사용할 수 있는 메서드를 제공 합니다.The PackageManager and Package classes in the Windows SDK provide methods you can use to add or modify packages via App Installer files or to retrieve information about apps with an App Installer association. 자세한 내용은 관련 설명서를 참조하세요.For more information, see Related documentation.

이러한 메서드 중 PackageManager AddPackageByAppInstallerFileAsync, PackageManager, RequestAddPackageByAppInstallerFileAsyncCheckUpdateAvailabilityAsync 는 JavaScript에서 지원 되지 않습니다.Of these methods, PackageManager.AddPackageByAppInstallerFileAsync, PackageManager.RequestAddPackageByAppInstallerFileAsync, and Package.CheckUpdateAvailabilityAsync are not supported in JavaScript. 그러나 이러한 메서드를 호출한 다음 JavaScript UWP 앱에서이 구성 요소를 호출 하는 Windows 런타임 구성 요소 를 만들 수 있습니다.However, you can create a Windows Runtime component that calls these methods and then call this component from a JavaScript UWP app.

다음 예를 참조하세요.Here is an example.

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