要求為應用程式評等和評論

您可以將程式碼新增至您的通用 Windows 平台 (UWP) 應用程式,以程式設計方式來提示您的客戶為應用程式評等或評論。 有數種方法能可以完成此動作:

  • 您可以直接在應用程式的內容中顯示評等和評論對話方塊。
  • 您可以在 Microsoft Store 中以程式設計方式開啟您應用程式的評等和評論頁面。

當您準備好分析評等和評論資料時,您可以在合作夥伴中心檢視資料,或使用 Microsoft Store 分析 API 以程式設計方式擷取此資料。

重要

在應用程式中新增評等函式時,所有評論都必須將使用者傳送至 Store 的評等機制,而不論所選的星級評等為何。 如果您從使用者收集意見反應或留言,則必須清楚標明其與 Store 中的應用程式評等或評論無關,而會直接傳送給應用程式開發人員。 如需詐騙或不誠實活動的詳細資訊,請參閱開發人員管理辦法。

在您的應用程式中顯示評等和評論對話方塊

若要以程式設計方式顯示來自您應用程式的對話方塊,要求客戶為您的應用程式評等並提交評論,請在 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 推出,且僅供用於在 Visual Studio 中以 Windows 10 2018 年 10 月更新 (10.0,組建 17763) 或更新版本為目標的專案。

評等和評論要求的回應資料

提交要求以顯示評等和評論對話方塊之後,StoreRateAndReviewResult 類別的 ExtendedJsonData 屬性中會包含 JSON 格式化的字串,指出要求是否成功。

下列範例示範客戶成功提交評等或評論之後,此要求的傳回值。

{ 
  "status": "success", 
  "data": {
    "updated": false
  },
  "errorDetails": "Success"
}

下列範例示範客戶選擇不提交評等或評論之後,此要求的傳回值。

{ 
  "status": "aborted", 
  "errorDetails": "Navigation was unsuccessful"
}

下表列資料表描述 JSON 格式化資料字串中的欄位。

欄位 描述
status 指出客戶是否成功提交評等或評論的字串。 支援的值是 successaborted。
data 包含名為 updated 的單一布林值物件。 此值指出客戶是否已更新現有的評等或評論。 data 物件只會包含在成功回應中。
errorDetails 包含要求的錯誤詳細資料字串。

在 Store 中啟動您應用程式的評等和評論頁面

如果您想要以程式設計方式在 Store 中開啟應用程式的評等和評論頁面,您可以使用 LaunchUriAsync 方法搭配 ms-windows-store://review URI 配置,如此程式碼範例所示。

bool result = await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-windows-store://review/?ProductId=9WZDNCRFHVJL"));

如需詳細資訊,請參閱啟動 Microsoft Store 應用程式

分析您的評等和評論資料

若要分析客戶的評等和評論資料,您有數個選項:

  • 您可以使用合作夥伴中心的評論報告來查看客戶的評等和評論。 您也可以下載此報告來離線檢視。
  • 您可以使用 Store 分析 API 中的取得應用程式評等取得應用程式評論方法,以程式設計方式從客戶擷取 JSON 格式的評等和評論。