MSDN mentions here应该如何执行订阅检查。但是没有提到它是否可以离线运行。如果不起作用,那么当用户没有互联网连接时,如何验证用户是否购买了订阅? 我认为无法测试此场景,因为测试场景无论如何都会返回示例响应,而不会查询实际服务器。
private async Task<bool> CheckIfUserHasSubscriptionAsync()
{
StoreAppLicense appLicense = await context.GetAppLicenseAsync();
// Check if the customer has the rights to the subscription.
foreach (var addOnLicense in appLicense.AddOnLicenses)
{
StoreLicense license = addOnLicense.Value;
if (license.SkuStoreId.StartsWith(subscriptionStoreId))
{
if (license.IsActive)
{
// The expiration date is available in the license.ExpirationDate property.
return true;
}
}
}
// The customer does not have a license to the subscription.
return false;
}
答案 0 :(得分:2)
此方法(StoreAppLicense)返回的GetAppLicenseAsync对象提供对licenses for add-ons
和其他信息(例如许可证是否处于活动状态)的访问。 如果设备离线时调用此方法,它将返回设备上当前许可证的缓存值。