【问题标题】:What's the replacement for MarketplaceReviewTask in Windows Phone 8.1 Universal AppsWindows Phone 8.1 通用应用程序中 MarketplaceReviewTask 的替代品是什么
【发布时间】:2014-04-10 00:56:09
【问题描述】:

我到处寻找,只是找不到从我的应用程序启动评分和评论的方法。有谁知道如何在新的 Windows Phone 8.1 上启动此任务?

【问题讨论】:

    标签: windows-phone-8.1 win-universal-app


    【解决方案1】:
    await Windows.System.Launcher.LaunchUriAsync(
        new Uri("ms-windows-store:reviewapp?appid=" + CurrentApp.AppId));
    

    这很好!

    【讨论】:

    • 你在windows phone上试过了吗?它奏效了吗?因为我尝试了@Romasz 建议的与此类似的方法,但它不起作用。
    • 好的。我对此进行了测试,并且可以正常工作。但是,只有在应用程序首次发布后才能进行真正的测试。
    • 关闭这个。我昨天发布了我的应用程序的测试版,这在发布后肯定有效。谢谢@user3496220。
    【解决方案2】:

    MarketplaceReviewTask 不能直接替换。现在它像这样工作 - 通过使用 LaunchUriAsync 和适当的 Uri - 在'MSDN - Link to your app in the Store':

    中描述

    查看您可以使用的应用:

    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 schemes for launching built-in apps 都可以工作。所以你也可以像这样使用它们:

    审核应用:

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

    查看应用详情页面:

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

    【讨论】:

    • 是的,我也看到了这种方法,但是我还无法测试它,因为我无法使用模拟器,因为我正在使用虚拟化 Windows 8.1 进行开发。一旦我能够测试它,我会接受你的答案。谢谢。
    • 好的,我设法让模拟器工作并尝试了这个,但没有打开商店,而是打开了 Xbox 音乐应用程序。真的很奇怪。我想这可能是因为商店没有安装任何应用程序......无论如何,我会保持这个开放,直到我可以在手机上进行测试。
    • @LPains 我认为这是模拟器的问题。我也愿意在开发者预览版发布时查看。
    • 是的。刚刚在运行 8.1 的 Windows Phone 上进行了测试,但仍然无法按预期工作。调用该 Uri 时,它会打开音乐应用程序。
    • @Lpains zune:reviewapp?app=app[ID] 替代方案是否适用于 Windows Phone 8.1?
    【解决方案3】:

    我可以确认 user3496220 发布的方法有效,但前提是您使用的是开发中心的应用程序 ID(不是 CurrentApp.AppId) 在你的情况下是这样的:

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

    【讨论】:

      【解决方案4】:

      我知道这个问题专门针对 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 或通过访问您应用的基于 Web 的列表页面并查看页面源来检索您的应用的包系列名称。

      可能的行动:

      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
      

      【讨论】:

      • 这个问题仅从 Windows Phone 8.1 开始。有人将其更改为通用应用程序...不过感谢您的回答。
      • 这对我有帮助!我的印象是相同的解决方案适用于两个平台......但当然微软并没有让它那么容易。 掌心
      【解决方案5】:

      好的。我解决了这个问题。我不确定这是否是最好的方法,但这是唯一有效的方法。

      我没有使用任何特殊的 Uri,而是直接链接到我的应用商店链接 like this。如MSDN 中所述。

      但有一个问题,如果您从未发布过要启用审核的应用,您将没有链接。

      感谢 @Romasz 分享 MSDN 链接。

      【讨论】:

      • 我今天已经测试过了,我也遇到了同样的问题。我相信它打开音乐中心而不是 Windows 商店是某种错误。感谢您分享另一种可能性。
      【解决方案6】:

      这将打开重定向到商店的 IE:

      await Launcher.LaunchUriAsync(CurrentApp.LinkUri);
      

      【讨论】:

      • 请尽量避免使用纯代码回答。至少写几句话来描述 sn-ps 如何解决问题。
      • 这将打开重定向到商店的 IE。
      • 不要使用这种方法,因为它在被定向到商店之前会不必要地导航到 Internet Explorer。其他方法避免了这一步。
      【解决方案7】:

      我发现了一种区分 windows phone 8.1 和 windows phone 10 的棘手方法,函数位于 https://stackoverflow.com/a/37641902/3172445 基于该功能,我使用以下代码使评级功能适用于 wp8.1 和 wp10(在诺基亚 Lumia 925、诺基亚 Lumia 735 和诺基亚 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 手机,而不是 UWP。

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-25
        相关资源
        最近更新 更多