Domanda

I've looked everywhere and just can't find a way to launch the Rate and Review from my app. Does anyone know how to launch this task on the new Windows Phone 8.1?

È stato utile?

Soluzione

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

this is good!

Altri suggerimenti

There is no direct replacement of MarketplaceReviewTask. Now it works like this - by using LaunchUriAsync wit appropriate Uri - described at 'MSDN - Link to your app in the Store':

to review the app you can use:

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"));

At the link above (MSDN) you find also Uri structure to navigate to details page and search for specified content in the store.

Note also that Windows Phone 8.1 has backward compatibility with WP 8.0, therefore all URI schemes for launching built-in apps work. So you can also use them like this:

to review the App:

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

to see details Page of the App:

await Windows.System.Launcher.LaunchUriAsync(new Uri(@"zune:navigate?appid=[app ID]"));

I can confirm that the method posted by user3496220 is working but only if you are using app id of your app from Dev Center (not CurrentApp.AppId) Like this in your case:

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

I know that this question is specifically about Windows Phone 8.1 Universal Apps. But since the main reason to build a universal app is to have one app running both on Windows Phone 8.1 and on Windows 8.1, I'd like to add, that the link is different for Windows Store Apps.

As described in MSDN (http://msdn.microsoft.com/en-us/library/windows/apps/Hh974767.aspx) the link syntax is a bit different:

To create the Windows Store protocol link, append the Package Family Name of your app to the URL:

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

You can retrieve the Package Family Name for your app either from Microsoft Visual Studio, or by visiting your app’s web-based listing page and viewing the page source.

Possible Actions:

PDP     Opens an app's listing page.

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

Example Link to request a store review:

ms-windows-store:REVIEW?PFN=6509Knattips.StopNow_eadn2jc3headp

Ok. I got this sorted out. I'm not sure whether it is the best way to do it, but that's the only way it worked.

Instead of using any special Uri I linked directly to my app store link like this. As described in MSDN.

There is one issue though, if you never published the app you want to enable review, you won't have a link.

Thanks @Romasz for sharing the MSDN link.

This will open IE which redirects to the store:

await Launcher.LaunchUriAsync(CurrentApp.LinkUri);

I found a tricky way to distinguish a windows phone 8.1 against a windows phone 10, function at https://stackoverflow.com/a/37641902/3172445 based on that function i used the following code to make the rating function works on wp8.1 and wp10 (tested on Nokia Lumia 925, Nokia Lumia 735 and 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
            }
        }

I want to highlight that the app on which I'm working on, is a windows phone only, is not UWP.

Hope it helps

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top