пятница, 22 марта 2013 г.

Протокол Windows Store (ms-windows-store)

Помимо возможности извне открывать страницу "Отзывы и оценки" приложения в магазине Windows (описание см. в статье Windows Store. Rate and Review), существует ряд других возможностей по работе с протоколом магазина.
К примеру, чтобы вызвать страницу описания приложения достаточно выполнить следующее действие:
ms-windows-store:PDP?PFN=package_family_name, где в качестве параметра принимается - это PackageId.FamilyName.
Так же существует возможность открыть страницу обновления магазина Windows:
Ну и можно выполнить поиск по магазину:
ms-windows-store:Search?query=Bessonov Kirill, где в качестве параметра принимается поисковый запрос.
Для более удобной работы с данным функционалом, объединим это во вспомогательный класс:

StoreHelper.cs:
    /// <summary>
    /// Вспомогательный класс для работы с протоколом Windows Store.
    /// </summary>
    public static class StoreHelper
    {
        /// <summary>
        /// Открытие страницы описания приложения.
        /// </summary>
        public static async Task PdpAsync()
        {
            await Launcher.LaunchUriAsync(new Uri(String.Concat("ms-windows-store:PDP?PFN=", Package.Current.Id.FamilyName)));
        }

        /// <summary>
        /// Открытие страницы описания приложения.
        /// </summary>
        /// <param name="familyName">Имя семейства пакета.</param>
        public static async Task PdpAsync(String familyName)
        {
            await Launcher.LaunchUriAsync(new Uri(String.Concat("ms-windows-store:PDP?PFN=", familyName)));
        }

        /// <summary>
        /// Открытие страницы обновлений Магазина.
        /// </summary>
        public static async Task UpdatesAsync()
        {
            await Launcher.LaunchUriAsync(new Uri("ms-windows-store:Updates"));
        }

        /// <summary>
        /// Выполнение запроса поиска и отображение результатов.
        /// </summary>
        /// <param name="query">Строка запроса к Магазину.</param>
        public static async Task SearchAsync(String query)
        {
            await Launcher.LaunchUriAsync(new Uri(String.Concat("ms-windows-store:Search?query=", query)));
        }

        /// <summary>
        /// Открытие страницы "Отзывы и оценки" приложения.
        /// </summary>
        public static async Task ReviewAsync()
        {
            await Launcher.LaunchUriAsync(new Uri(String.Concat("ms-windows-store:REVIEW?PFN=", Package.Current.Id.FamilyName)));
        }

        /// <summary>
        /// Открытие страницы "Отзывы и оценки" приложения.
        /// </summary>
        /// <param name="familyName">Имя семейства пакета.</param>
        public static async Task ReviewAsync(String familyName)
        {
            await Launcher.LaunchUriAsync(new Uri(String.Concat("ms-windows-store:REVIEW?PFN=", familyName)));
        }
    }

Комментариев нет:

Отправить комментарий