我想打开当前应用程序的Windows应用商店(因此用户可以对应用进行评分/评论)。在这样做时,我需要获取App ID。但是,我遇到this article in SO表示CurrentApp.AppId
需要花费大量时间,并提供包ID作为替代。我之前从未在Windows应用商店发布应用,如果没有在Windows应用商店发布/发布的应用,则无法立即测试。
任何人都可以帮我确认以下两行代码吗?
//var appId = CurrentApp.AppId.ToString();
var appId = Windows.ApplicationModel.Package.Current.Id;
答案 0 :(得分:4)
正如您所看到的,AppId
是Guid
结构,而PackageId
是一个类。当您的应用已经过认证可以在Windows应用商店中列出时,Windows应用商店会生成AppId
,而PackageId
会提供包裹识别信息,例如您的应用中可以找到的名称,版本和发布商表现。
由于AppId
与Windows应用商店相关,因此第一次尝试获取时,可能需要一些时间。但这不会太久,在我的测试中它大约是1秒钟。在此之后,当您再次尝试获取AppId
时,它会非常快。 (我认为它已经存储在本地机器中,因为它的值是不变的。)
但是,如果要启动产品的产品详细信息页面(PDP)。建议Windows 10上的客户使用产品ID。产品ID不是AppId
。
要获取产品ID,Launch the Windows Store app说:
可以在每个应用程序的“应用程序管理”部分的App identity页面的Windows开发人员中心仪表板中找到这些值。
要以编程方式获取它,我们可以尝试使用CurrentApp.LinkUri属性,此属性返回Windows应用商店列表页面的URI,如:
https://www.microsoft.com/store/apps/<your app's Product ID>
。
产品ID也是不变的,因此我认为您可以在Windows开发人员中心仪表板中找到它并在您的应用中对其进行硬编码。
答案 1 :(得分:1)
这可以让你得到你想要的东西:
await Launcher.LaunchUriAsync(new Uri($"ms-windows-store:REVIEW?PFN={Package.Current.Id.FamilyName}"));
商店将处理ms-windows-store:
协议,参数会将其指向您应用的“评分和评论”部分。