在UWP应用程序中打开UWP

时间:2015-11-03 13:54:37

标签: windows uwp windows-10 win-universal-app kiosk

也许是一个非常奇怪的请求......

我们正在研究构建可以在其中打开网站和其他UWP应用程序的Windows 10 UWP应用程序。我猜主要问题是......

在Windows 10 UWP中,是否有一个控件可以打开另一个UWP(如UWP的WebView?)

这个想法(我们还没有开始编码那么多,因为我们目前“蓝图”)是实现了一个带有SplitView(汉堡包控制)的应用程序,每个按钮会将框架更改为网页链接或链接到另一个UWP应用程序 - 比如天气。

当用户点击一个选项时,这将改变主框架以访问该内容...而无需离开应用程序 - 将其视为锁定的自助服务终端(安全)。

我猜测没有一个开箱即用的解决方案,但我想我会问:)

谢谢! 马特

3 个答案:

答案 0 :(得分:7)

如果我理解你的话,我不认为你正在寻找的是完全。事实上,UWP应用程序模型中的关键词是应用程序的隔离或容器化。

这并不意味着应用程序不会相互交互--UWP应用程序模型确实允许应用程序与基于URL的激活/通信进行交互;也许这就是你需要探索它是否符合你的要求。您可以从here开始获取一些背景信息。

也就是说,您可以将UI设计为模仿其他应用程序包含在splitview或任何容器中(对用户来说是一种错觉)。也就是说,不同隔间中的UI只是在后台与其他应用程序进行URL通信的视图模型。

答案 1 :(得分:0)

不,你不能,Windows应用程序用于保护数据。

但你可以做的是启动另一个应用程序,任何注册到uri的应用程序 以下来自msdn的代码显示了如何将自己的应用程序绑定到uri然后调用它。

var options = new Windows.System.LauncherOptions();
options.PreferredApplicationPackageFamilyName= "Contoso.URIApp_8wknc82po1e";
options.PreferredApplicationDisplayName = "Contoso URI Ap";

// Launch the URI and pass in the recommended app 
// in case the user has no apps installed to handle the URI
var success = await Windows.System.Launcher.LaunchUriAsync(uriContoso, options);

答案 2 :(得分:0)

如果你有App的项目,你可以轻松地将它转换为库:

转到要嵌入的应用。右键单击它的解决方案 - >添加新项目。

创建类库(通用Windows)。将其命名为YourAppName.Core。删除刚刚创建的模板* .cs文件。从YourAppName项目中选择除App.xaml,App.cs,Properties,References,TemporaryKey,Manifest和project.json之外的所有文件夹和文件,并将它们拖放到新库YourAppName.Core。在每个* .xaml和* .cs文件中将名称空间从YourAppName更改为YourAppName.Core。

转到YourAppName项目。排除您移动到库中的选定文件并在其中创建新页面,例如将其命名为MainPage。转到参考,右键单击 - >添加新引用并选择YourAppName.Core。确保App.cs导航到typeof MainPage。在MainPage.xaml中插入您的库:

<Grid>
    <YourPageName that was previously in App.cs/>
</Grid>

运行您的应用。如果它的工作方式与原样相同 - 一切正常。

现在转到您想要嵌入上面讨论的应用程序的主应用程序,只需引用您的库YourAppName.Core。只需在您希望的任何地方使用XAML,或者从代码后面创建实例。