UWP 无法使用自定义 OSK 在 webview 的文本框中输入数据

UWP unable to enter data in textbox in webview with custom OSK

我在 webview 中有一个 angular 应用程序 运行,在 uwp 中有一个自定义屏幕键盘 (OSK)。我无法使用自定义 OSK 在 webview 中存在的文本框中输入数据,尽管它对于普通 UWP 文本框工作正常。当我点击 OSK 时,它似乎失去了焦点。

我已经尝试 WebView.Focus(FocusState.Programmatic) 并使用 InvokeScriptAsync 调用脚本将焦点设置回 WebView LostFocus 事件中的 webview 但没有任何效果。

我也试过使用 focusmanager。

FocusMovementResult result;
result = await FocusManager.TryFocusAsync(WebView, FocusState.Programmatic);

我正在使用 InputInjector 在文本框中插入输入。

inputKey.VirtualKey = ((ushort)((VirtualKey)Enum.Parse(typeof(VirtualKey), input.Text, true)));
inputInjector.InjectKeyboardInput(new[] { inputKey });

此外,AllowFocusOnInteraction 属性 对于 OSK 设置为 False。 <app:Keyboard x:Name="keyboard" AllowFocusOnInteraction="False"/>

我可以通过通知 UWP 来解决它 window.external.notify 关于使用事件侦听器的模糊事件,并使用此通知命令将焦点设置回 webview 使用

webview.Focus(FocusState.Programmatic);
await webView.InvokeScriptAsync(@"eval", new string[] { "document.focus()" });