我们目前正在UWP中的一个项目上,我们必须启动一个外部应用程序来修改一些文档。
我们研究了Windows.System.Launcher API,但似乎我们需要的远远超过它所能提供的。
从文件启动应用程序时,基于MSDN给出的示例,我们使用LaunchFileAsync方法:
async void DefaultLaunch()
{
// Path to the file in the app package to launch
string imageFile = @"images\test.png";
var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(imageFile);
if (file != null)
{
// Launch the retrieved file
var success = await Windows.System.Launcher.LaunchFileAsync(file);
if (success)
{
// File launched
}
else
{
// File launch failed
}
}
else
{
// Could not find file
}
}
到目前为止,该示例非常适合我们,但是在用户使用完文件后也需要警告我们。最好的办法是能够为启动器提供一个回调方法。
我们还没有在文档中找到类似的东西。这有可能吗?我们是否需要使用其他解决方案?
TL; DR:是否存在从UWP应用程序打开另一个应用程序并等待其返回结果对象的解决方案?
如果外部应用程序也是UWP应用程序,则为此设计Launcher.LaunchUriForResultsAsync。它将启动目标应用程序,然后等待该应用程序返回结果。
有关完整结果的完整演练,请参阅启动应用程序以获取结果。
如果目标应用程序不是UWP应用程序,那么您可以自己实现同一件事:两个应用程序都声明一个协议。客户端使用服务器的协议启动服务器。服务器完成后,它将通过启动客户端的协议来通知调用方。
您可能还需要研究允许UWP服务器应用向本地系统上的客户端公开类似REST的服务的App Services。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句