我有两个UWP应用程序app1和app2, 我已经实现了 app1 的通知,它在硬件更改时发出通知。
private async void Hardware_Change(object sender, RoutedEventArgs e)
{
var toastContentBuilder = new ToastContentBuilder()
.AddArgument("action", "app2")
.AddText("open hardware app")
.AddText("Please Open Hardware App")
.GetToastContent();
var tost = new ToastNotification(toastContentBuilder.GetXml());
ToastNotificationManager.CreateToastNotifier().Show(tost);
Application.Current.Exit();
}
我为 IBackgroundTask 创建了 Windows 运行时组件项目并在 app1 项目中引用
public sealed class LancherBackgroundTask : IBackgroundTask
{
public async void Run(IBackgroundTaskInstance taskInstance)
{
var uri = new Uri("app2:");
var options = new LauncherOptions();
options.TargetApplicationPackageFamilyName = "app2_packge_family_name";
var success = await Launcher.LaunchUriAsync(uri, options);
}
}
然后我在app1的
package.appmanifest
中注册了后台任务。
并将入口点设置为 IBackgroundTask 类。
<Extensions>
<Extension Category="windows.backgroundTasks" EntryPoint="BackgroundHelper.LancherBackgroundTask">
<BackgroundTasks>
<Task Type="pushNotification"/>
</BackgroundTasks>
</Extension>
</Extensions>
我无法从 app1 的通知启动 app2。
每次点击通知时都会显示app1,并且我不确定IBackgroundTask是否正在运行。
如何在UWP中使用IBackgroundTask?以及如何在不打开app1的情况下从app1的通知中打开app2?
“如何在不打开app1的情况下从app1的通知中打开app2?”
抱歉,在进程外后台任务中无法使用
LaunchUriAsync
打开其他应用程序,建议您在进程中处理。
建议使用通知监听器打开app2。您可以参考后台任务添加/取消通知。