当应用程序处于最小化状态时如何从边缘浏览器共享到UWP应用程序C#uwp

问题描述

我想将Edge浏览器中的内容共享到我的应用程序中(当我的应用程序处于最小化状态时)。但是,它不起作用。 LaunchUriAsync未还原应用程序窗口。 可能的原因是,应用程序在后台任务中运行,这就是为什么UI操作无法正常工作的原因?

有人可以提出任何解决方案吗?

解决方法

当应用程序处于最小化状态时如何从边缘浏览器共享到UWP应用程序

通常,您可以打开注册的UWP应用,以成为Uniform Resource Identifier(URI)方案名称的默认处理程序。然后,我们可以将应用程序的启动uri添加到html页面中,如下所示。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>App36</title>
    <link href="css/default.css" rel="stylesheet" />
</head>
<body>
    <div>Content goes here!</div>
    <div>
        <a href="ms-windows-store:">OpenApp</a>
    </div>
    <script src="js/main.js"></script>
</body>
</html>

在运行于 Window 10操作系统中的浏览器中单击OpenApp标签时,它将启动商店应用程序。您可以使用应用程序Uri协议名称(例如:myapp :)替换ms-windows-store:来启动您的应用程序,并根据您的设计传递参数。

在UWP客户端中,我们需要使用OnActivated方法处理来自浏览器的共享参数,并最终调用Window.Current.Activate()

protected override void OnActivated(IActivatedEventArgs args)
{

    if (args.Kind == ActivationKind.Protocol)
    {
        ProtocolActivatedEventArgs eventArgs = args as ProtocolActivatedEventArgs;
        // Navigate to a view 
        Frame rootFrame = Window.Current.Content as Frame;
        if (rootFrame == null)
        {
            rootFrame = new Frame();
            Window.Current.Content = rootFrame;
        }
        // assuming you wanna go to MainPage when activated via protocol
        rootFrame.Navigate(typeof(MainPage),eventArgs);

    }
    Window.Current.Activate();
}

有关更多详细信息,请Handle URI activation

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...