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 問題。