StoreLicense Class 中的 IsActive 是否可用?

Is IsActive in StoreLicense Class useable?

只是想知道是否有人可以帮助我。

我实现了以下代码来检查用户是否为我的 UWP 应用购买了针对创作者更新的附加组件:

foreach (KeyValuePair<string, StoreLicense> item in appLicense.AddOnLicenses)
{
    StoreLicense addOnLicense = item.Value;

    if (addOnLicense.IsActive)
    {
         Frame.Navigate(typeof(thispage));
    }

    else
    {
         var messageDialog = new MessageDialog("You need to buy the add-on to access this part of the app.");
         await messageDialog.ShowAsync();
    }
}

但是,IsActive 似乎总是 return 正确。在 Microsoft 文档上研究此问题时,在 StoreLicense Class 中,我发现 IsActive 属性 是 "reserved for future use, and it is not intended to be used in the current release. Currently, it always returns true." 因此,如果是这种情况,我如何确定用户是否具有活动我的附加组件的许可证?

如有任何帮助,我们将不胜感激。

干杯

显然,没有必要检查 IsActive 属性 的值来查看附加许可证是否有效,因为 AddOnLicenses 字典只包含用户需要的产品拥有有效许可证:

Remarks

This collection contains durable add-on licenses that are currently valid. When a license is expired or no longer valid, it will no longer be available in this collection. [AddOnLicenses property of StoreAppLicense class]

因此,只需检查插件是否在集合中就可以完成这项工作。

或者,您可以检查 ProductLicense class 的 IsActive 属性 的值(使用旧的 Windows.ApplicationModel.Store 命名空间):

private bool IsLicenseActive(string productName)
{
    return CurrentApp.LicenseInformation.ProductLicenses[productName].IsActive);
}

请注意,如果互联网连接不佳,此方法的执行可能需要一段时间,因此您最好将其包装在 Task 中并异步等待结果以避免冻结 UI.