首页 > 解决方案 > 如何判断用户是否已经评价了我的 UWP 应用?

问题描述

Windows 10 商店 UWP 应用程序可以使用StoreContext.RequestRateAndReviewAppAsync函数,或者只是这样的 URLms-windows-store://review/?ProductId=9WZDNCRFHVJL来显示应用程序的用户评分窗口:

在此处输入图像描述

我更喜欢 URL 方法,因为我可以简单地通过ShellExecute方法调用它。

但我的问题是如何确定用户是否已经对我的应用进行了评分,以便我不再显示该评分窗口?

标签: c++uwpwindows-store-appswindows-store

解决方案


目前没有这样的 api 可以直接判断用户是否已经对 UWP 应用程序进行了评分,但是您可以在应用程序中使用漫游数据,从而使您的应用程序的应用程序数据在多个设备之间保持同步。

如果用户对您的应用进行了评分,您可以在 RoamingSettings 中设置“是”,如果 RoamingSettings 中的值为“否”,您可以再次显示该评分窗口。您可以确定评分是否成功,例如在StoreContext.RequestRateAndReviewAppAsync方法中,StoreRateAndReviewResult 类的ExtendedJsonData属性包含一个 JSON 格式的字符串,指示评分请求是否成功。通过 ExtendedJsonData 属性可以知道评分是否成功,然后在 RoamingSettings 中将值设置为“是”。

private async void Button_Click(object sender, RoutedEventArgs e)
{
    ApplicationDataContainer RatingSettings = ApplicationData.Current.RoamingSettings;
    //initialization
    if (RatingSettings.Values["isRated"] == null)
    {
        RatingSettings.Values["isRated"] = "No";
    }
    var isRatedStr = RatingSettings.Values["isRated"].ToString();

    if (isRatedStr == "No")
    {
        //display the rate windows
        if (//if rated successfully)
        {
            RatingSettings.Values["isRated"] = "Yes";
        }

    }
}

或者,您可以使用商店分析 API 中的获取应用评分和获取应用评论方法以编程方式以 JSON 格式检索客户的评分和评论。更多详细信息,您可以参考此文档


推荐阅读