使用下面的代码:
await Windows.System.Launcher.LaunchUriAsync(new Uri(@"ms-windows-store://review/?ProductId=9wzdncrfj2wl"));
我正在 Microsoft Store 中打开 Facebook 应用。该页面上有一个启动按钮。用户使用它运行应用程序。
如何使用产品 ID 运行应用程序?
我成功地用这段代码打开了应用:
await Windows.System.Launcher.LaunchUriAsync(new Uri("fb:post?text=foo"));
但是我想用ID打开。
我找到了这段代码,但它不起作用:
await Windows.System.Launcher.LaunchUriAsync(new Uri(@"ms-windows-store://pdp/?ProductId=9wzdncrfj2wl"));
如何使用ID打开已安装的应用程序?或者,如果有另一种方法可以检查应用程序是否已安装,如果已安装则启动它,如果未安装则在商店中显示,以便用户可以手动安装。我正在开发的应用程序是 Windows 10 UWP...
我的情况是没有应用程序的 URI,所以我必须通过它的 ProductID 或 ProductFamily 打开它...
因此,这是打开该应用程序的快捷方式目标: C:\Windows\explorer.exe shell:AppsFolder\A88BB54F.N1info_gvc78jvcn5cg0!App
我是否有机会在 UWP 应用程序中使用它来启动应用程序?
有没有人从 Windows 应用商店的 LAUNCH 按钮得到链接?所以,我会把它放在 URI 中,就像来自 GET 按钮的链接一样:
ms-windows-store:PDP?PFN=A88BB54F.N1info_gvc78jvcn5cg0&referrer=unistoreweb&webig=39694073-f9af-436f-a82b-abb9d9f644f0&muid=097C7AA3CA2C6EE22D237359CE2C689A&websession=c9916902dd014ec2b5a9e0390a28c26d
我是这样使用它的:
await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-windows-store:PDP?PFN=A88BB54F.N1info_gvc78jvcn5cg0&referrer=unistoreweb&webig=39694073-f9af-436f-a82b-abb9d9f644f0&muid=097C7AA3CA2C6EE22D237359CE2C689A&websession=c9916902dd014ec2b5a9e0390a28c26d"));
它正在商店中展示应用。
谢谢。
最佳答案
可以使用包管理器:
using Windows.Management.Deployment;
var app = await GetAppByPackageFamilyNameAsync("Microsoft.WindowsCalculator_8wekyb3d8bbwe");
if(app != null)
{
await app.LaunchAsync();
}
static async Task<AppListEntry> GetAppByPackageFamilyNameAsync(string packageFamilyName)
{
var pkgManager = new PackageManager();
var pkg = pkgManager.FindPackagesForUser("", packageFamilyName).FirstOrDefault();
if (pkg == null) return null;
var apps = await pkg.GetAppListEntriesAsync();
var firstApp = apps.FirstOrDefault();
return firstApp;
}
并向 Package.appxmanifest 添加一项功能:
<?xml version="1.0" encoding="utf-8"?>
<Package xmlns:...
xmlns:rescap = "http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="... rescap">
...
<Capabilities>
...
<rescap:Capability Name="packageQuery" />
</Capabilities>
</Package>
了解有关受限功能的更多信息:https://learn.microsoft.com/en-us/windows/uwp/packaging/app-capability-declarations#restricted-capabilities
关于C# uwp 启动应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41979131/