我如何 launch/switch 在 Windows 10 IoT 上使用前台应用程序
How can I launch/switch foreground app on Windows 10 IoT
我想在我的 Windows 10 IoT (Raspberry Pi 3) build 14986(或更高版本)上构建一个 "Launcher App" 到 运行。启动器应用程序基本上应该只有两个按钮来启动(或切换到)设备上已经部署的其他应用程序。我想知道是否有人知道如何启动应用程序(从 C#)?
我查看了 Windows.System.Launcher.LaunchUriAsync
API,但我不确定要传入什么(我已经用一些 URI 和选项下的 TargetApplicationPackageFamilyName
进行了测试,没有运气(调用方法时没有任何反应)。
示例(不起作用):
private void button_Click(object sender, RoutedEventArgs e)
{
Task.Run(async () =>
{
var options = new LauncherOptions();
options.TargetApplicationPackageFamilyName = "27ad8aa6-8c23-48bd-9633-e331740e6ba7_mr3ez18jctte6!App";
var uri = new Uri("about:blank");
await Windows.System.Launcher.LaunchUriAsync(uri, options);
});
}
您可以在Microsoft Code 上找到答案。有一个示例:
https://code.msdn.microsoft.com/windowsapps/How-to-launch-an-UWP-app-5abfa878
在此示例中,您找到启动器代码:
private async void RunMainPage_Click(object sender, RoutedEventArgs e)
{
await LaunchAppAsync("test-launchmainpage://HostMainpage/Path1?param=This is param");
}
private async void RunPage1_Click(object sender, RoutedEventArgs e)
{
await LaunchAppAsync("test-launchpage1://Page1/Path1?param1=This is param1¶m1=This is param2");
}
private async Task LaunchAppAsync(string uriStr)
{
Uri uri = new Uri(uriStr);
var promptOptions = new Windows.System.LauncherOptions();
promptOptions.TreatAsUntrusted = false;
bool isSuccess = await Windows.System.Launcher.LaunchUriAsync(uri, promptOptions);
if (!isSuccess)
{
string msg = "Launch failed";
await new MessageDialog(msg).ShowAsync();
}
}
诀窍是在要启动的应用程序上指定 Windows 协议,并在 LaunchApp URI 中指定。
我想在我的 Windows 10 IoT (Raspberry Pi 3) build 14986(或更高版本)上构建一个 "Launcher App" 到 运行。启动器应用程序基本上应该只有两个按钮来启动(或切换到)设备上已经部署的其他应用程序。我想知道是否有人知道如何启动应用程序(从 C#)?
我查看了 Windows.System.Launcher.LaunchUriAsync
API,但我不确定要传入什么(我已经用一些 URI 和选项下的 TargetApplicationPackageFamilyName
进行了测试,没有运气(调用方法时没有任何反应)。
示例(不起作用):
private void button_Click(object sender, RoutedEventArgs e)
{
Task.Run(async () =>
{
var options = new LauncherOptions();
options.TargetApplicationPackageFamilyName = "27ad8aa6-8c23-48bd-9633-e331740e6ba7_mr3ez18jctte6!App";
var uri = new Uri("about:blank");
await Windows.System.Launcher.LaunchUriAsync(uri, options);
});
}
您可以在Microsoft Code 上找到答案。有一个示例:
https://code.msdn.microsoft.com/windowsapps/How-to-launch-an-UWP-app-5abfa878
在此示例中,您找到启动器代码:
private async void RunMainPage_Click(object sender, RoutedEventArgs e)
{
await LaunchAppAsync("test-launchmainpage://HostMainpage/Path1?param=This is param");
}
private async void RunPage1_Click(object sender, RoutedEventArgs e)
{
await LaunchAppAsync("test-launchpage1://Page1/Path1?param1=This is param1¶m1=This is param2");
}
private async Task LaunchAppAsync(string uriStr)
{
Uri uri = new Uri(uriStr);
var promptOptions = new Windows.System.LauncherOptions();
promptOptions.TreatAsUntrusted = false;
bool isSuccess = await Windows.System.Launcher.LaunchUriAsync(uri, promptOptions);
if (!isSuccess)
{
string msg = "Launch failed";
await new MessageDialog(msg).ShowAsync();
}
}
诀窍是在要启动的应用程序上指定 Windows 协议,并在 LaunchApp URI 中指定。