UWP:BackgroundTask 打开应用主页

Posted

技术标签:

【中文标题】UWP:BackgroundTask 打开应用主页【英文标题】:UWP: BackgroundTask open App Mainpage 【发布时间】:2016-03-04 10:47:43 【问题描述】:

是否可以通过我自己的后台任务打开我的应用程序?

当我在 windows 通用平台中有一个背景任务时,我可以从那里启动或打开我的 app.mainpage 吗? 我的 backgroundtask 会定期检查剪贴板,如果它被点击,那么它应该打开我的应用程序。

这是否适用于 uwp 或者 uwp 又是一个禁止使用的软件? 因此有什么解决方案或想法?

【问题讨论】:

【参考方案1】:

您可以通过敬酒来做到这一点。这是一个例子。

   var content =
        $@"
            <toast activationType='foreground' launch='args'>
                <visual>
                    <binding template='ToastGeneric'>
                        <text>Open app</text>
                        <text>Your clipboard is ready.Open app</text>
                    </binding>
                </visual>
                <actions>

                    <action content='ok' activationType='foreground' arguments='check'/>

                  <action activationType='system' arguments='dismiss' content='cancel' />

                </actions>
            </toast>";


        Windows.Data.Xml.Dom.XmlDocument toastDOM = new Windows.Data.Xml.Dom.XmlDocument();
        toastDOM.LoadXml(content);
        ToastNotification toast = new ToastNotification(toastDOM);
        var notifier = ToastNotificationManager.CreateToastNotifier();
        notifier.Show(toast);

然后如果用户按下确定按钮,您必须进入 App.xaml.cs 并进行处理

 protected override void OnActivated(IActivatedEventArgs args)
    
        if (args.Kind == ActivationKind.ToastNotification)
        
            var toastArgs = args as ToastNotificationActivatedEventArgs;
            var arguments = toastArgs.Argument;

            if (arguments == "check")
            
                Frame rootFrame = Window.Current.Content as Frame;
                if (rootFrame == null)
                
                    rootFrame = new Frame();
                    Window.Current.Content = rootFrame;
                
                rootFrame.Navigate(typeof(YOURPAGEHERE));
                Window.Current.Activate();
            
        
    

【讨论】:

感谢这个例子。是不是可以从backgrountTask启动launcher()?

以上是关于UWP:BackgroundTask 打开应用主页的主要内容,如果未能解决你的问题,请参考以下文章

从 UWP BackgroundTask 调用 MediaCapture.InitializeAsync

我们能否将 UWP BackgroundTask(WindowsRuntimeComponent) 托管为 Windows 服务?

UWP -- Background Task 深入解析

UWP使用AppService向另一个UWP客户端应用程序提供服务

UWP使用AppService向另一个UWP客户端应用程序提供服务

删除多个文件时的 UWP StorageLibraryContentChangedTrigger