C++ 如何判断用户是否已经为我的UWP应用程序评分?

C++ 如何判断用户是否已经为我的UWP应用程序评分?,c++,uwp,windows-store-apps,windows-store,C++,Uwp,Windows Store Apps,Windows Store,Windows 10 Store UWP应用程序可以使用函数,也可以使用类似以下ms Windows的URL-store://review/?ProductId=9WZDNCRFHVJL,显示应用程序的用户分级窗口: 我更喜欢URL方法,因为我可以通过方法简单地调用它 但我的问题是,我如何确定用户是否已经对我的应用程序进行了评分,这样我就不会再显示该评分窗口了?不幸的是,这是不可能的,但可能有一个很好的理由——如果开发人员能够通过编程方式对此进行检查,他们可能会“欺骗系统”通过为用户提供一定的

Windows 10 Store UWP应用程序可以使用函数,也可以使用类似以下
ms Windows的URL-store://review/?ProductId=9WZDNCRFHVJL
,显示应用程序的用户分级窗口:

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


但我的问题是,我如何确定用户是否已经对我的应用程序进行了评分,这样我就不会再显示该评分窗口了?

不幸的是,这是不可能的,但可能有一个很好的理由——如果开发人员能够通过编程方式对此进行检查,他们可能会“欺骗系统”通过为用户提供一定的奖金/额外津贴来查看应用程序。

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

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

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";
        }

    }
}

或者,您可以使用Store analytics API中的Get-app ratings和Get-app reviews方法以编程方式以JSON格式从客户处检索评级和评论。有关更多详细信息,请参阅。

是,但用户可以使用其Microsoft帐户在漫游配置文件未涵盖的完全不同的设备上安装应用程序。然后呢?当微软试图对开发者隐瞒它的时候,这太傻了。因为功能就在那里。商店应用程序知道并使用它。那么,是什么阻止了我对其进行反向工程并调用他们保密的相同API端点呢?这毫无意义。通过模糊度BS提高安全性。评级不是需要限制的类型,用户可以多次评级。如果要限制审查,则需要手动实现该功能。如果使用不打开漫游数据,你只能考虑在本地存储数据。如果你想得到这个特性,你可以到反馈集线器(开始菜单->反馈集线器)提交你的特征请求。不幸的是漫游设置显然消失了:(…但请注意,其他平台也有同样的问题-您无法判断用户是否已评级。您在哪里看到漫游设置被取消?不幸的是,情况就是这样,据我所知,任何其他移动平台都是如此。您可以在本地存储该标志,但它不会跨设备工作。Roaming设置可以为您做到这一点,但它们显然会在未来的版本中被删除。真的吗?它们正在删除漫游配置文件?这是您的意思,还是我混淆了术语?