Чем заменить MarketplaceReviewTask в универсальных приложениях Windows Phone 8.1?

Я искал везде и просто не могу найти способ запустить Оценку и обзор из моего приложения. Кто-нибудь знает, как запустить эту задачу на новой Windows Phone 8.1?


person LPains    schedule 10.04.2014    source источник


Ответы (7)


await Windows.System.Launcher.LaunchUriAsync(
    new Uri("ms-windows-store:reviewapp?appid=" + CurrentApp.AppId));

это хорошо!

person user3496220    schedule 21.04.2014
comment
Вы пробовали это на телефоне с Windows? Это сработало? Потому что я попробовал то, что предложил @Romasz, похожее на это, и это не сработает. - person LPains; 21.04.2014
comment
Ok. Я проверил это, и это работает. Однако настоящий тест можно провести только после того, как приложение будет опубликовано в первый раз. - person LPains; 25.04.2014
comment
Чтобы закрыть это. Вчера я опубликовал бета-версию своего приложения, и она определенно работает после публикации. Спасибо @user3496220. - person LPains; 23.05.2014

Прямой замены MarketplaceReviewTask нет. Теперь это работает следующим образом: используется LaunchUriAsync с соответствующим Uri, как описано в 'MSDN — ссылка на ваше приложение в магазине':

просмотреть приложение, которое вы можете использовать:

await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-windows-store:reviewapp?appid=[app ID]"));
// or simply for the current app:
await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-windows-store:reviewapp"));

По приведенной выше ссылке (MSDN) вы также найдете структуру Uri для перехода на страницу сведений и поиска указанного контента в магазине.

Также обратите внимание, что Windows Phone 8.1 имеет обратную совместимость с WP 8.0, поэтому все Схемы URI для запуска встроенных приложений работают. Таким образом, вы также можете использовать их следующим образом:

проверить приложение:

await Windows.System.Launcher.LaunchUriAsync(new Uri(@"zune:reviewapp?appid=app" + YourAppID));

для просмотра подробностей Страница приложения:

await Windows.System.Launcher.LaunchUriAsync(new Uri(@"zune:navigate?appid=[app ID]"));
person Romasz    schedule 10.04.2014
comment
Да, я тоже видел этот подход, однако пока не могу его протестировать, потому что не могу использовать эмуляторы, так как использую для разработки виртуализированную Windows 8.1. Я приму ваш ответ, как только смогу его проверить. Спасибо. - person LPains; 11.04.2014
comment
Хорошо, мне удалось заставить эмулятор работать, и я попробовал это, но вместо открытия магазина он открывает приложение Xbox Music. Действительно странно. Я предположил, что это может быть из-за того, что магазин не устанавливает никаких приложений... В любом случае, я оставлю это открытым, пока не смогу протестировать на самом телефоне. - person LPains; 13.04.2014
comment
@LPains Я думаю, что это проблема с эмулятором. Я также готов проверить это, когда будет выпущена предварительная версия для разработчиков. - person Romasz; 13.04.2014
comment
Ага. Только что протестировано на Windows Phone 8.1 и все еще не работает должным образом. При вызове этого Uri открывается приложение «Музыка». - person LPains; 16.04.2014
comment
@Lpains Работала ли альтернатива zune:reviewapp?app=app[ID] на Windows Phone 8.1? - person Rowinson Gallego; 17.07.2016
comment
@RowinsonGallegoMedina нет, не было. - person LPains; 18.07.2016

Я могу подтвердить, что метод, опубликованный пользователем 3496220, работает, но только в том случае, если вы используете идентификатор своего приложения из Центра разработки (а не CurrentApp.AppId). Например, в вашем случае:

await Windows.System.Launcher.LaunchUriAsync(
    new Uri("ms-windows-store:reviewapp?appid=fc0c29fc-f615-4753-aad7-5cf760ca5d2d"));
person Artem Shuba    schedule 21.04.2014

Я знаю, что этот вопрос касается именно универсальных приложений Windows Phone 8.1. Но поскольку основной причиной создания универсального приложения является то, что одно приложение работает как на Windows Phone 8.1, так и на Windows 8.1, я хотел бы добавить, что ссылка для приложений Магазина Windows отличается.

Как описано в MSDN (http://msdn.microsoft.com/en-us/library/windows/apps/Hh974767.aspx) синтаксис ссылки немного отличается:

Чтобы создать ссылку на протокол Магазина Windows, добавьте имя семейства пакетов вашего приложения к URL-адресу:

ms-windows-store:[action]P?PFN=[Package Family Name]

Вы можете получить имя семейства пакетов для своего приложения либо из Microsoft Visual Studio, либо посетив веб-страницу со списком вашего приложения и просмотрев исходный код страницы.

Возможные действия:

PDP     Opens an app's listing page.

Review  Opens the "Write a review" page of an app's listing.    

Пример ссылки для запроса обзора магазина:

ms-windows-store:REVIEW?PFN=6509Knattips.StopNow_eadn2jc3headp
person stefan.s    schedule 17.10.2014
comment
Вопрос начался только с Windows Phone 8.1. Кто-то изменил его на Universal Apps... Спасибо за ответ. - person LPains; 18.10.2014
comment
Это помогло мне! У меня сложилось впечатление, что одно и то же решение будет работать для обеих платформ... Но, конечно, Microsoft не упростила задачу. фейспалм - person Whyser; 28.05.2015

Ok. Я разобрался с этим. Я не уверен, что это лучший способ сделать это, но это единственный способ, которым это сработало.

Вместо использования какого-либо специального Uri я напрямую связался со ссылкой на мой магазин приложений как это. Как описано в MSDN.

Однако есть одна проблема: если вы никогда не публиковали приложение, которое хотите включить для проверки, у вас не будет ссылки.

Спасибо @Romasz за то, что поделились ссылкой MSDN.

person LPains    schedule 16.04.2014
comment
Я протестировал его сегодня, и у меня такая же проблема. Я считаю, что это какая-то ошибка, которая открывает Music Hub вместо Магазина Windows. Спасибо, что поделились другой возможностью. - person Romasz; 16.04.2014

Это откроет IE, который перенаправляет в магазин:

await Launcher.LaunchUriAsync(CurrentApp.LinkUri);
person Faisal    schedule 15.06.2014
comment
Пожалуйста, старайтесь избегать ответов, содержащих только код. Напишите хотя бы пару слов о том, как фрагменты решают проблему. - person toniedzwiedz; 16.06.2014
comment
Это откроет IE, который перенаправляет в магазин. - person Faisal; 16.06.2014
comment
Не используйте этот подход, так как он имеет ненужную навигацию в Internet Explorer перед направлением в магазин. Другие подходы избегают этого шага. - person Kasper Holdum; 13.10.2014

Я нашел сложный способ отличить Windows Phone 8.1 от Windows Phone 10, функция на https://stackoverflow.com/a/37641902/3172445 на основе этой функции я использовал следующий код, чтобы функция рейтинга работала на wp8.1 и wp10 (проверено на Nokia Lumia 925, Nokia Lumia 735 и Nokia Lumia 930)

        private async void OnTapRateThisApp(object sender, RoutedEventArgs e)
        {
            bool launched = false;
            try
            {
                // FUNCTION at https://stackoverflow.com/a/37641902/3172445
                if (this.liIsWindowsPhone81(false))
                {
                    await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-windows-store:reviewapp?appid=" + CurrentApp.AppId));
                }
                else
                {
                    await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-windows-store://review/?PFN=" + Package.Current.Id.FamilyName));
                }

                launched = true;
            }
            catch{}
            if (!launched)
            {
               // Unable to launch the uri
            }
        }

Я хочу подчеркнуть, что приложение, над которым я работаю, предназначено только для Windows Phone, а не UWP.

Надеюсь, поможет

person Luca Iaco    schedule 05.06.2016