gpt4 book ai didi

uwp - 边缘扩展 native 消息 : UWP app is closed if no response sent back to Edge browser/Extension

转载 作者:行者123 更新时间:2023-12-01 04:44:47 24 4
gpt4 key购买 nike

Edge 浏览器的每个请求都需要发送相应的响应。如果不是,则伴随的 UWP(和关联的 Win32 应用程序,如果有)退出,理由是“SystemPolicy”。
为了说明问题,我可以引用SecureInput样本。

    /// <summary>
/// Receives message from Extension (via Edge)
/// </summary>
private async void OnAppServiceRequestReceived(AppServiceConnection sender, AppServiceRequestReceivedEventArgs args)
{
AppServiceDeferral messageDeferral = args.GetDeferral();

try
{
if (this.desktopBridgeAppLaunched)
{
this.currentConnectionIndex = Int32.Parse(sender.AppServiceName);
this.desktopBridgeConnection = desktopBridgeConnections[this.currentConnectionIndex];

// Send message to the desktopBridge component and wait for response
AppServiceResponse desktopBridgeResponse = await this.desktopBridgeConnection.SendMessageAsync(args.Request.Message);
await args.Request.SendResponseAsync(desktopBridgeResponse.Message);
}
else
{
throw new Exception("Failed to launch desktopBridge App!");
}
}
finally
{
messageDeferral.Complete();
}
}

通过注释掉调用“SendResponseAsync(...)”的行,UWP 和 Win32 App(PasswordInputProtection.exe) 将退出,因为 SystemPolicy 原因调用了“OnAppServicesCanceled(...)”处理程序。

我知道对于这个特定的例子,不发回响应是没有意义的。但是我有一些不需要将响应发送回 Edge Extension 的情况。相反,我打算使用 Win32 应用程序中的 SendMessageAsync(...) 通过 UWP 应用程序与扩展进行通信。

此外,我注意到我在网上找到的 native 消息示例至少将无用的 ACK 消息从 UWP 发送回扩展。那么,是设计上需要发送响应还是我在这里遗漏了什么?

最佳答案

Edge 团队对此进行了调查,并确认这是他们的一个组件中的错误。他们正在为下一次更新进行修复。在修复完成之前,您需要始终发送响应。

感谢您报告问题,对于由此带来的不便,我们深表歉意!

关于uwp - 边缘扩展 native 消息 : UWP app is closed if no response sent back to Edge browser/Extension,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47575689/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com