自动打开启动时启动的UWP应用

时间:2018-11-04 21:37:21

标签: unity3d uwp

我正在研究Unity生成的UWP应用。根据StartUpTasks here上的文档,我将应用程序设置为在启动时启动,但是在启动时,它在任务栏中的启动最少。我需要在启动该应用程序时将其打开,但不知道该调用什么以及在何处进行此操作。

这是Unity生成的代码:

namespace UnityToUWPApp
{
    class App : IFrameworkView, IFrameworkViewSource
    {
        private WinRTBridge.WinRTBridge m_Bridge;
        private AppCallbacks m_AppCallbacks;

        public App()
        {
            SetupOrientation();
            m_AppCallbacks = new AppCallbacks();
        }

        public virtual void Initialize(CoreApplicationView applicationView)
        {
            applicationView.Activated += ApplicationView_Activated;
            CoreApplication.Suspending += CoreApplication_Suspending;

            // Setup scripting bridge
            m_Bridge = new WinRTBridge.WinRTBridge();
            m_AppCallbacks.SetBridge(m_Bridge);

            m_AppCallbacks.SetCoreApplicationViewEvents(applicationView);
        }

        private void CoreApplication_Suspending(object sender, SuspendingEventArgs e)
        {
        }

        private void ApplicationView_Activated(CoreApplicationView sender, IActivatedEventArgs args)
        {
            CoreWindow.GetForCurrentThread().Activate();
        }

        public void SetWindow(CoreWindow coreWindow)
        {

            m_AppCallbacks.SetCoreWindowEvents(coreWindow);
            m_AppCallbacks.InitializeD3DWindow();
        }

        public void Load(string entryPoint)
        {
        }

        public void Run()
        {
            m_AppCallbacks.Run();
        }

        public void Uninitialize()
        {
        }

        [MTAThread]
        static void Main(string[] args)
        {
            var app = new App();
            CoreApplication.Run(app);
        }

        public IFrameworkView CreateView()
        {
            return this;
        }

        private void SetupOrientation()
        {
            Unity.UnityGenerated.SetupDisplay();
        }
    }
}

如何确保应用启动时已打开并处于活动状态?

1 个答案:

答案 0 :(得分:2)

设置为“启动”任务的

UWP应用会根据设计的最小化/悬浮性启动。这是为了确保默认情况下为Store应用提供良好的用户体验,并避免在启动时让大量应用启动到用户的脸部。

由于向后兼容/一致性原因,经典Win32应用程序以及桌面桥应用程序可以继续在前台启动。

要实现您的目标,您可以在软件包中包含一个简单的启动器Win32 exe,并将其设置为启动任务。然后,当它启动时,您只需从那里启动UWP到前台。请注意,执行此操作将需要您声明“ runFullTrust”功能,这将需要对Microsoft Store进行额外的板载审核。

要将Win32 exe声明为启动任务,请遵循此doc主题的“桌面桥”部分: https://docs.microsoft.com/en-us/uwp/api/Windows.ApplicationModel.StartupTask