我正在研究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();
}
}
}
如何确保应用启动时已打开并处于活动状态?
答案 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