可以将代码添加到通用 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 中引入的,它只能在 面向 2018 年 10 月 Windows 10 10 10 更新(10.0;)的项目中使用。内部版本 17763) 在 Visual Studio 中 或更高版本。
评分和评审请求的响应数据
提交请求以显示评级和审阅对话框后,StoreRateAndReviewResult 类的 ExtendedJsonData 属性包含一个 JSON 格式的字符串,指示请求是否成功。
以下示例演示客户成功提交评分或评审后此请求的返回值。
{
"status": "success",
"data": {
"updated": false
},
"errorDetails": "Success"
}
以下示例演示客户选择不提交评分或评审后此请求的返回值。
{
"status": "aborted",
"errorDetails": "Navigation was unsuccessful"
}
下表描述了 JSON 格式的数据字符串中的字段。
领域 | DESCRIPTION |
---|---|
状态 | 一个字符串,指示客户是否已成功提交评分或评审。 支持的值是 成功 和 中止。 |
数据 | 一个对象,其中包含名为 更新的单个布尔值。 此值指示客户是否更新了现有的评分或评论。 数据对象仅包含在成功响应中。 |
错误详情 | 一个字符串,其中包含请求的错误详细信息。 |
在应用商店中启动应用的分级和评论页面
如果要以编程方式在应用商店中打开应用的分级和审阅页面,可以将 LaunchUriAsync 方法与 ms-windows-store://review
URI 方案配合使用,如本代码示例所示。
bool result = await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-windows-store://review/?ProductId=9WZDNCRFHVJL"));
有关详细信息,请参阅 启动 Microsoft 应用商店应用。
分析你的评分和评价数据
若要分析客户的评分和评价数据,可以选择以下几个选项:
- 可以使用合作伙伴中心中的 “审阅 ”报告查看客户的评分和评论。 您还可以下载此报告,以便离线查看。
- 可以使用 获取应用评分 和 获取应用评论 方法,通过 Microsoft Store 分析 API,以编程方式从客户以 JSON 格式检索评分和评价。