다음을 통해 공유


Package.CheckUpdateAvailabilityAsync 메서드

정의

*CheckUpdateAvailabilityAsync 메서드를 사용하면 개발자가 .appinstaller 파일에 나열된 기본 앱 패키지에 대한 업데이트를 검사 수 있습니다. 개발자는 .appinstaller 정책으로 인해 업데이트가 필요한지 확인할 수 있습니다. 이 메서드는 현재 .appinstaller 파일을 통해 설치된 애플리케이션에서만 작동합니다.

public:
 virtual IAsyncOperation<PackageUpdateAvailabilityResult ^> ^ CheckUpdateAvailabilityAsync() = CheckUpdateAvailabilityAsync;
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<PackageUpdateAvailabilityResult> CheckUpdateAvailabilityAsync();
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<PackageUpdateAvailabilityResult> CheckUpdateAvailabilityAsync();
function checkUpdateAvailabilityAsync()
Public Function CheckUpdateAvailabilityAsync () As IAsyncOperation(Of PackageUpdateAvailabilityResult)

반환

애플리케이션에 업데이트가 있는지, 업데이트가 필요한지 여부를 나타내는 PackageUpdateAvailabilityResult 입니다.

특성

Windows 요구 사항

디바이스 패밀리
Windows 10, version 1809 (10.0.17763.0에서 도입되었습니다.)
API contract
Windows.Foundation.UniversalApiContract (v7.0에서 도입되었습니다.)

예제

참고

MSIX Labs for Developers 리포지토리에는 포함된 를 사용하는 연습을 포함하여 MSIX를 활용하여 데스크톱 앱을 현대화하는 방법에 대한 추가 예제가 포함되어 있습니다. AppInstaller 기능.

앱 개발자는 앱에 사용자가 앱 업데이트를 검사 수 있는 단추를 사용하려고 합니다. 업데이트를 사용할 수 있는 경우 앱이 검사 수 있도록 하려면 아래와 같이 메서드를 CheckUpdateAvailabilityAsync 사용합니다.

private async void CheckForUpdatesButton_Click(object sender, RoutedEventArgs e)
{
    // Get the current app's package for the current user.
    var pm = new PackageManager();
    Package currentPackage = pm.FindPackageForUser(string.Empty, Package.Current.Id.FullName);

    PackageUpdateAvailabilityResult result = await currentPackage.CheckUpdateAvailabilityAsync();
    switch (result.Availability)
    {
        case PackageUpdateAvailability.Available:
            GoToUpdateAvailableUIView();
            break;
        case PackageUpdateAvailability.Required:
            GoToUpdateRequiredUIView();
            break;
        case PackageUpdateAvailability.NoUpdates:
            // Dismissable ‘Ok’ dialog.
            ShowNoUpdateAvailableDialog(); 
            break;
        case PackageUpdateAvailability.Unknown:
        default:
            // Log and ignore error.
            Logger.Log($"No update information associated with app {Package.Current.DisplayName}");
            // Dismissable ‘Ok’ dialog.
            ShowNoUpdateAvailableDialog();
            break;
    }
}

앱 내부에서 개발자는 업데이트를 검사 업데이트를 사용할 수 있는 경우 업데이트 프로세스를 시작하려고 합니다.

public async void CheckForAvailableUpdatesAndLaunchAsync(string targetPackageFullName)
{
    // Get the current app's package for the current user.
    var pm = new PackageManager();
    Package package = pm.FindPackageForUser(string.Empty, targetPackageFullName);

    PackageUpdateAvailabilityResult result = await package.CheckUpdateAvailabilityAsync();
    switch (result.Availability)
    {
        case PackageUpdateAvailability.Available:
            GoToUpdateAvailableUIView();
            break;
        case PackageUpdateAvailability.Required:
            GoToUpdateRequiredUIView();
            break;
        case PackageUpdateAvailability.NoUpdates:
            // Launch target app and close AppInstaller.
            LaunchTargetApp(targetPackageFullName);
            await ConsolidateAppInstallerView();
            break;
        case PackageUpdateAvailability.Unknown:
        default:
            // Log and ignore error.
            Logger.Log($"No update information associated with app {targetPackageFullName}");
            // Launch target app and close AppInstaller.
            LaunchTargetApp(targetPackageFullName);
            await ConsolidateAppInstallerView();
            break;
    }
}

설명

Current 속성에서 반환된 Package 개체에서 이 메서드를 사용하려고 하면 "액세스 거부됨" 오류와 함께 이 메서드가 실패합니다. 이는 향후 릴리스에서 해결될 수 있는 알려진 문제입니다. 이 페이지의 예제에서는 현재 앱의 패키지에 대한 업데이트 정보를 검색하는 방법을 보여 줍니다.

이 메서드는 JavaScript에서 지원되지 않습니다. 그러나 이 메서드를 호출하는 Windows 런타임 구성 요소를 만든 다음 JavaScript UWP 앱에서 이 구성 요소를 호출할 수 있습니다. 자세한 내용은 앱 설치 관리자 파일 API 문제를 참조하세요.

적용 대상

추가 정보