从Windows窗体启动UWP应用程序 - 入口点?

时间:2016-11-09 17:55:36

标签: c# uwp windows-8.1 windows-10-universal

我的VS2013解决方案中有两个项目:

  1. 从本地json文件使用/生成数据的UWP应用程序

    • 这得到了侧载并且有效处理
  2. 从远程服务器获取数据的Windows窗体         使用Web服务

  3. 我希望在我的表单上有一个按钮,以便在获取数据后启动UWP应用程序。 (我无法将这两者集成为因为Web服务认证库不能与W8.1一起使用)

    此方法仅启动我的UWP启动画面。它没有进入代码。

     Process.Start("MyUWPApp:");
    

    我需要这样的东西:

     Process.Start("MyUWPApp:MyEntryPoint");
    

    MyEntryPoint将进入UWP上的清单文件?我一直在为文件中的MyentryPoint尝试各种值,如: 应用程序,MainPage.cs,Main()等。我不确定这是不是这样......任何人?

2 个答案:

答案 0 :(得分:2)

您必须覆盖OnActivated(IActivatedEventArgs args)中的App.xaml.cs方法才能在UWP应用中处理协议激活。在MSDN上查看here,然后解释它。

我已经以这种方式实现了它,它在我的应用程序中完美运行:

private async void Initialize(IActivatedEventArgs args)
{
    // My code copied from original OnLaunched method with some minor changes
}

protected override void OnActivated(IActivatedEventArgs args)
{
    Initialize(args);
}

protected override void OnLaunched(LaunchActivatedEventArgs e)
{
    Initialize(e);
}

答案 1 :(得分:0)

以下代码对我有帮助。在App.Xaml.cs文件中添加代码。

protected override void OnActivated(IActivatedEventArgs args)
    {
        Initialize(args);
        if (args.Kind == ActivationKind.Protocol)
        {
            ProtocolActivatedEventArgs eventArgs = args as ProtocolActivatedEventArgs;
            Frame rootFrame = Window.Current.Content as Frame;
            if (rootFrame == null)
            {
                // Create a Frame to act as the navigation context and navigate to the first page
                rootFrame = new Frame();

                rootFrame.NavigationFailed += OnNavigationFailed;

                // Place the frame in the current Window
                Window.Current.Content = rootFrame;
            }
            // Always navigate for a protocol launch
            rootFrame.Navigate(typeof(MainPage), eventArgs.Uri.AbsoluteUri);
            // Ensure the current window is active
            Window.Current.Activate();
        }
    }