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

posted @ 2016-05-25 15:17  法的空间  阅读(702)  评论(2编辑  收藏  举报