从其他Metro应用程序Windows 8启动一个城域应用程序

时间:2014-05-17 08:42:38

标签: c# windows-8 microsoft-metro

我正在开展一个项目,我必须将其他应用/游戏与我的平台集成。通过它我可以运行它们。所以他们是一个糟糕的测试解决方案是我将它们硬编码地集成到我的框架中作为框架的一部分。但那是废话。

所以,我的问题是我可以运行其他安装的应用程序(这些应用程序将从商店单独下载)通过我平台的一些代码,我知道数据可以从一个应用程序转移到其他应用程序。

应该就像我点击播放应用按钮然后一个已安装的应用程序将启动并向我传输一些设置,当用户完成播放该应用程序时,一些数据会转移回我的平台并且我的平台恢复到相应的状态

1 个答案:

答案 0 :(得分:3)

要从您的应用中打开其他应用,您必须知道应用的uri,例如您想要打开“其他应用”

 string anotherappURI = "anotherapp_uri_value:///?anyVariable=value";
 Uri uri = new Uri(anotherappURI);
 await Launcher.LaunchUriAsync(uri);

如果您想为自己的应用制作一个uri,以便可以从其他应用开放,请按照以下步骤操作

  1. 双击项目中的package.appxmanifest文件

  2. 在声明选项卡中,从下拉列表中选择“协议”,然后单击添加

  3. 输入“your_app_URI_displayname”作为显示名称,输入“your_app_URI”作为名称

  4. 保存这些更改

  5. 现在激活后(当您的应用被调用并打开时)如何获得激活

    1. 转到App.xaml.cs文件
    2. 覆盖OnActivated方法
    3. 在以下位置插入以下代码:
    4. 代码:

        protected override void OnActivated(IActivatedEventArgs args)
        {
        if (args.Kind == ActivationKind.Protocol)
        {
        ProtocolActivatedEventArgs eventArgs = args as
        ProtocolActivatedEventArgs;
        // TODO: Handle URI activation
        // The received URI is eventArgs.Uri.AbsoluteUri
        }
        }
      

      注意:如果有帮助,请提前投票并接受答案