UWP webview 键盘bug,回退页面,键盘会弹一下。
最新项目发现一个关于Webview的键盘bug。
具体问题:当点击Webview 网页里面input之类的东东,输入键盘会弹出来,这个时候,按回退键,键盘会收起来,再按回退键,界面会退到前一个页面,但你会发现键盘会弹出来一下,然后消失。
这个应该是win10的bug。
解决方案:
1.在页面上加一个隐藏的textbox
<TextBox x:Name="hidetextBox" PreventKeyboardDisplayOnProgrammaticFocus="True" Width="0" Height="0" MinHeight="0" MinWidth="0"/>
2.InputPaneHiding 事件中设置把焦点给 hidetextBox,因为设置PreventKeyboardDisplayOnProgrammaticFocus为true,所以放心,键盘不会弹出来的
var inputPane = InputPane.GetForCurrentView(); inputPane.Hiding += OnInputPaneHiding; private void OnInputPaneHiding(InputPane sender, InputPaneVisibilityEventArgs args) { //因为webview里面的input,输入键盘打开了, //如果按退后键,关闭键盘,再按退后键,回退页面,这个时候页面会弹一下键盘 //为了防止这种情况,增加一个不会弹键盘的Textbox,让它获得焦点 //注意设置PreventKeyboardDisplayOnProgrammaticFocus="True" //这个应该是Win10的bug hidetextBox.Focus(FocusState.Programmatic); }
这只是我想到一个workaround,希望微软早日修复。。( ╯□╰ )
最后放上sample 地址:https://files.cnblogs.com/files/FaDeKongJian/UWPWebviewBugFixedSample.zip