【问题标题】:Automatically open UWP app that launches on startup自动打开启动时启动的 UWP 应用
【发布时间】:2019-04-08 07:13:51
【问题描述】:

我正在开发由 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();
        }
    }
}

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

【问题讨论】:

    标签: unity3d uwp


    【解决方案1】:

    设置为启动任务的 UWP 应用按设计最小化/暂停启动。这是为了确保默认情况下为 Store 应用提供良好的用户体验,并避免在启动时将大量应用启动到用户面前。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多