Я искал везде и просто не могу найти способ запустить Оценку и обзор из моего приложения. Кто-нибудь знает, как запустить эту задачу на новой Windows Phone 8.1?
Чем заменить MarketplaceReviewTask в универсальных приложениях Windows Phone 8.1?
Ответы (7)
await Windows.System.Launcher.LaunchUriAsync(
new Uri("ms-windows-store:reviewapp?appid=" + CurrentApp.AppId));
это хорошо!
Прямой замены 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]"));
Я могу подтвердить, что метод, опубликованный пользователем 3496220, работает, но только в том случае, если вы используете идентификатор своего приложения из Центра разработки (а не CurrentApp.AppId). Например, в вашем случае:
await Windows.System.Launcher.LaunchUriAsync(
new Uri("ms-windows-store:reviewapp?appid=fc0c29fc-f615-4753-aad7-5cf760ca5d2d"));
Я знаю, что этот вопрос касается именно универсальных приложений 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
Ok. Я разобрался с этим. Я не уверен, что это лучший способ сделать это, но это единственный способ, которым это сработало.
Вместо использования какого-либо специального Uri я напрямую связался со ссылкой на мой магазин приложений как это. Как описано в MSDN.
Однако есть одна проблема: если вы никогда не публиковали приложение, которое хотите включить для проверки, у вас не будет ссылки.
Спасибо @Romasz за то, что поделились ссылкой MSDN.
Это откроет IE, который перенаправляет в магазин:
await Launcher.LaunchUriAsync(CurrentApp.LinkUri);
Я нашел сложный способ отличить 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.
Надеюсь, поможет