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()" });
我在 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()" });