2017-12-27 36 views
0

누군가 나를 도울 수 있는지 궁금합니다.StoreLicense 클래스의 IsActive가 사용 가능합니까?

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는 항상 true를 돌려 듯 : 사용자가 창조주의 업데이트를 목표로 내 UWP 앱 애드온을 구입 한 경우

나는 확인하기 위해 다음 코드 조각을 구현했습니다. Microsoft의 문서에서 StoreLicense 클래스를 조사 할 때 IsActive 속성은 "향후 사용을 위해 예약되어 있으며 현재 릴리스에서 사용하도록되어 있지 않습니다. 현재는 항상 true를 반환합니다"라는 것을 알았습니다. 그렇다면 사용자가 내 부가 기능에 대한 활성 라이선스를 가지고 있는지 어떻게 판단 할 수 있습니까?

도움을 주시면 감사하겠습니다.

건배

분명히

답변

0

추가 기능에 대한 라이센스가 유효한 경우 AddOnLicenses 사전은 사용자가 활성 라이센스가있는 제품을 포함하고 있기 때문에, 볼 IsActive 속성 값을 확인 할 필요가 없습니다 :

비고

이 컬렉션에는 현재 유효한 내구성 애드온 라이센스가 포함되어 있습니다. 라이센스가 만료되었거나 더 이상 유효하지 않으면이 컬렉션에서 라이센스를 더 이상 사용할 수 없습니다. 부가 기능은 작업을해야 컬렉션에있는 경우 [AddOnLicenses property of StoreAppLicense class]

그래서, 간단하게 검사합니다.

또는, 당신은 ProductLicense 클래스의 IsActive 속성 값을 확인할 수 있습니다 (이전 Windows.ApplicationModel.Store 네임 스페이스를 사용) :

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

참고이 방법의 실행은 그렇게 나쁜 인터넷 연결의 경우 다소 시간이 걸릴 수 있습니다 Task에 랩핑하고 결과를 비동기 적으로 기다리면서 UI를 정지시키지 않는 것이 좋습니다.

+0

내게 너무 빨리 돌아와 줘서 고마워. 새로운 Windows.Services.Store 네임 스페이스 대신 Windows.ApplicationModel.Store가 더 이상 사용되지 않기를 바랄뿐입니다. 더 새로운 네임 스페이스를 사용하는 방법이 있습니까? 아니면 ApplicationModel.Store를 사용하는 것이 더 좋습니까? – hlbmallo

+0

@hlbmallo 죄송합니다. 'CurrentApp' 클래스가 이전 네임 스페이스에 있다는 것을 완전히 잊었습니다. 'AddOnLicenses' 사전은 사용자가 사용 허가를받은 AddOns만을 포함합니다. 그래서 IsActive 속성의 값을 검사 할 필요가 없습니다 : AddOn이 사전에 있다면 사용자가 그것을 구입했고 그 반대도 마찬가지입니다. –

+0

안녕하세요. Milto, 내가이 문제를 해결했다고 생각했지만 인앱 구매 경험을 구현하는 데 여전히 어려움을 겪고 있습니다. 나는이 특정 애드온의 라이센스가 사용자 콜렉션에 있는지 확인하기 위해 'if (addOnLicense.IsActive)'와 'if (addOnLicense.SkuStoreId == "MYSTOREID")'행을 교체했지만, else 문이 대신 실행됩니다. 이것을 극복하는 방법에 대한 아이디어? 건배. – hlbmallo