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



我有一个在webview中运行的角度应用程序,在uwp中运行一个自定义屏幕键盘(OSK(。我无法使用自定义 OSK 在 Web 视图中存在的文本框中输入数据,尽管它适用于普通 UWP 文本框。当我单击OSK时,它似乎失去了焦点。

我已经尝试使用InvokeScriptAsyncWebView.Focus(FocusState.Programmatic)和调用脚本,以将焦点设置回 WebViewLostFocus事件中的 Web 视图,但没有任何效果。

我也尝试使用焦点管理器。

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 });

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

我能够通过通知 UWP 来解决它window.external.notify有关使用事件侦听器的模糊事件的信息,并使用此通知命令将焦点设置回 Web 视图

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

最新更新