请求对应用进行评分和撰写评论

可以将代码添加到通用 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 格式检索评分和评价。