请求应用的评分和评价
你可以在你的通用 Windows 平台 (UWP) 应用中添加代码以编程方式提示你的客户对应用进行评分或评价。 你可以采用下面几种方法来实现:
- 您可以直接在应用上下文中显示评分和评价对话框。
- 你可以在 Microsoft Store 中以编程方式打开你的应用的评级和评论页面。
当准备好分析评分和评价数据后,可以在合作伙伴中心查看这些数据,或使用 Microsoft Store 分析 API 以编程方式检索这些数据。
重要
在应用中添加评分功能时,任何评价操作都必须将用户转到应用商店的评分机制,无论用户在评分时选择了几星。 如果要从用户那里收集反馈或评论,则必须清楚表明此做法与应用商店中的应用评分或评价无关,而是会将相关信息直接发送给应用开发人员。 有关欺诈或欺骗活动的详细信息,请参阅“开发人员行为准则”。
在应用中显示评分和评价对话框
若要以编程方式在应用中显示对话框,用于要求客户对应用评分和提交评价,可调用 Windows.Services.Store 命名空间中的 RequestRateAndReviewAppAsync 方法。
重要
显示评分和评价对话框的请求必须在应用中的 UI 线程上调用。
using Windows.ApplicationModel.Store;
private StoreContext _storeContext;
public async Task Initialize()
{
if (App.IsMultiUserApp) // pseudo-code
{
IReadOnlyList<User> users = await User.FindAllAsync();
User firstUser = users[0];
_storeContext = StoreContext.GetForUser(firstUser);
}
else
{
_storeContext = StoreContext.GetDefault();
}
}
private async Task PromptUserToRateApp()
{
// Check if we’ve recently prompted user to review, we don’t want to bother user too often and only between version changes
if (HaveWePromptedUserInPastThreeMonths()) // pseudo-code
{
return;
}
StoreRateAndReviewResult result = await
_storeContext.RequestRateAndReviewAppAsync();
// Check status
switch (result.Status)
{
case StoreRateAndReviewStatus.Succeeded:
// Was this an updated review or a new review, if Updated is false it means it was a users first time reviewing
if (result.UpdatedExistingRatingOrReview)
{
// This was an updated review thank user
ThankUserForReview(); // pseudo-code
}
else
{
// This was a new review, thank user for reviewing and give some free in app tokens
ThankUserForReviewAndGrantTokens(); // pseudo-code
}
// Keep track that we prompted user and don’t do it again for a while
SetUserHasBeenPrompted(); // pseudo-code
break;
case StoreRateAndReviewStatus.CanceledByUser:
// Keep track that we prompted user and don’t prompt again for a while
SetUserHasBeenPrompted(); // pseudo-code
break;
case StoreRateAndReviewStatus.NetworkError:
// User is probably not connected, so we’ll try again, but keep track so we don’t try too often
SetUserHasBeenPromptedButHadNetworkError(); // pseudo-code
break;
// Something else went wrong
case StoreRateAndReviewStatus.OtherError:
default:
// Log error, passing in ExtendedJsonData however it will be empty for now
LogError(result.ExtendedError, result.ExtendedJsonData); // pseudo-code
break;
}
}
RequestRateAndReviewAppAsync 方法是在 Windows 10 版本 1809 中引入,仅可用于面向 Windows 10 2018 年十月更新(10.0;内部版本 17763)或 Visual Studio 较新版本的项目中。
评分和评价请求的响应数据
提交显示评分和评价对话框的请求之后,StoreRateAndReviewResult 类的 ExtendedJsonData 属性会包含 JSON 格式的字符串,用于指示请求是否成功。
下面的示例演示在客户成功提交评分或评价之后此请求的返回值。
{
"status": "success",
"data": {
"updated": false
},
"errorDetails": "Success"
}
下面的示例演示在客户选择不提交评分或评价之后此请求的返回值。
{
"status": "aborted",
"errorDetails": "Navigation was unsuccessful"
}
下表以 JSON 格式的数据字符串描述这些字段。
字段 | 说明 |
---|---|
status | 一个字符串,指示客户是否成功提交评分或评价。 受支持的值为 success 和 aborted。 |
data | 一个包含一个名为已更新的布尔值的对象。 此值指示客户是否已更新现有评分或评价。 数据对象仅包含在成功的响应。 |
errorDetails | 一个包含请求的错误详细信息的字符串。 |
在 Microsoft Store 中对你的应用启动评分和评价页面。
如果你想要以程序方式在 Microsoft Store 中对你的应用打开评分和评价页面,可像此代码示例中演示的那样,使用 ms-windows-store://review
URI 架构的 LaunchUriAsync 方法。
bool result = await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-windows-store://review/?ProductId=9WZDNCRFHVJL"));
有关详细信息,请参阅启动 Microsoft Store 应用。
分析你的评分和评价数据
要分析你的客户对应用的评分和评价数据,你有多个选择:
- 可以使用从合作伙伴中心的评价报告查看客户的评分和评价。 还可以下载该报告以便脱机查看。
- 你可以使用 Microsoft Store 分析 API 中的 Get app ratings 和 Get app reviews 方法以编程方式获取 JSON 格式的客户评分和评价。