Package.CheckUpdateAvailabilityAsync 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
*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 문제를 참조하세요.