繁体   English   中英

如何在Windows 10 IoT上启动/切换前台应用程序

[英]How can I launch/switch foreground app on Windows 10 IoT

我想构建一个“启动器应用程序”,以便在我的Windows 10 IoT(Raspberry Pi 3)版本14986(或更高版本)上运行。 启动器应用程序应该基本上只有两个按钮来启动(或切换到)已部署在设备上的其他应用程序。 我想知道是否有人知道如何启动应用程序(来自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&param1=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中指定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM