2017年11月新增功能,可以给Universal Windows Platform (UWP)应用添加代码,让用户在app内评价当前的app,
可以在Windows Dev Center dashboard中查看数据或者使用Microsoft Store analytics API自动查看评价。
在应用内展示评价对话框,要以编程方式显示来自您的应用程序的对话框,要求您的客户评估您的应用程序并提交评论,请调用Windows.Services.Store命名空间中的SendRequestAsync方法。 将整数16传递给requestKind参数,并将一个空字符串传递给parametersAsJson参数,如代码示例中所示。 这个例子需要Newtonsoft的Json.NET库,它需要使用Windows.Services.Store,System.Threading.Tasks和Newtonsoft.Json.Linq命名空间的语句。
展示评价对话框应该使用UI线程,示例代码如下:
public async Task<bool> ShowRatingReviewDialog() { StoreSendRequestResult result = await StoreRequestHelper.SendRequestAsync( StoreContext.GetDefault(), 16, String.Empty); if (result.ExtendedError == null) { JObject jsonObject = JObject.Parse(result.Response); if (jsonObject.SelectToken("status").ToString() == "success") { // The customer rated or reviewed the app. return true; } } // There was an error with the request, or the customer chose not to // rate or review the app. return false; }
SendRequestAsync方法使用简单的基于整数的请求系统和基于JSON的数据参数来将其他Store操作暴露给应用程序。 当您将整数16传递给requestKind参数时,您将发出请求以显示评级和审阅对话框,并将相关数据发送到商店。 此方法是在Windows 10(版本1607)中引入的,并且只能在Visual Studio中以Windows 10 Anniversary Edition(10.0; Build 14393)或更高版本为目标的项目中使用。 有关此方法的一般概述,请参阅向应用商店发送请求。
评级和审核请求的响应数据
提交请求以显示评级和评论对话框后,StoreSendRequestResult返回值的Response属性包含一个JSON格式的字符串,用于指示请求是否成功。
以下示例在客户成功提交评分或评论后,演示此请求的返回值。
JSON { "status": "success", "data": { "updated": false }, "errorDetails": "Success" }
以下示例演示客户选择不提交评分或评论后的此请求的返回值。
JSON { "status": "aborted", "errorDetails": "Navigation was unsuccessful" }
下表介绍了JSON格式的数据字符串中的字段。字段说明状态指示客户是否成功提交评分或评论的字符串。 支持的值是成功和中止。数据一个包含名为updated的单个布尔值的对象。 该值表示客户是否更新了现有的评分或评论。数据对象只包含在成功响应中。errorDetails包含请求的错误详细信息的字符串。在商店中启动您的应用的评分和评论页面如果要以编程方式打开应用商店的评分和评论页面,可以使用LaunchUriAsync方法和ms-windows-store:// review URI方案,如代码示例中所示。
bool result = await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-windows-store://review/?ProductId=9WZDNCRFHVJL"));
相关链接:
https://docs.microsoft.com/zh-cn/windows/uwp/monetize/request-ratings-and-reviews