打开Android键盘时,如何保持Cordova应用程序全屏?

打开Android键盘时,如何保持Cordova应用程序全屏?,android,cordova,webview,Android,Cordova,Webview,我已经创建了一个Cordova应用程序,我正在Nexus4上测试它。我使用了Cordova CLI工作流中列出的基本步骤来启动和运行。我还使用以下内容修改了我的config.xml: <preference name="Fullscreen" value="true" /> 我的应用程序按预期全屏运行。只要我点击一个输入字段,键盘就会像预期的那样向上滑动,但安卓系统的黑色顶部和底部栏也会出现,即使在键盘关闭后仍然会保留 更糟糕的是,它们实际上隐藏了应用程序的某些部分。在这一点上

我已经创建了一个Cordova应用程序,我正在Nexus4上测试它。我使用了Cordova CLI工作流中列出的基本步骤来启动和运行。我还使用以下内容修改了我的config.xml:

<preference name="Fullscreen" value="true" />

我的应用程序按预期全屏运行。只要我点击一个输入字段,键盘就会像预期的那样向上滑动,但安卓系统的黑色顶部和底部栏也会出现,即使在键盘关闭后仍然会保留

更糟糕的是,它们实际上隐藏了应用程序的某些部分。在这一点上,摆脱它们并返回全屏的唯一方法是退出应用程序并重新启动它。更新:我发现用户可以通过在状态栏上向下滑动并再次备份或点击最近的应用按钮来删除它们,但这并不明显

有什么方法可以防止顶部和底部栏出现


理想情况下,我希望避免更改
platforms/android
目录中的任何内容,因为我是移动开发新手。也许有一个配置选项、钩子,甚至一个我可以直接插入的插件可以解决这个问题?

对我来说,它在我更新到cli-5.2.0后开始重现。 到目前为止,我找到了两种解决方案:

  • 切换回cli-5.1.1
  • 在事件处理程序中添加并放置AndroidFullScreen.immersiveMode()
    我更喜欢第二种解决方案。我希望这个问题能在未来的cordova版本中得到解决,并且我能够消除我的解决方法。我相信相关的标签如下:

    另一个选项是使用Cordova参考插件API“StatusBar”

    科尔多瓦6.3.1 cli-5.3.7

    cordova插件添加cordova插件状态栏

    以下代码将隐藏状态栏。我使用“if(window.StatusBar)”,因为相同的功能在非cordova平台(例如独立浏览器)上运行


    在发布修复程序之前,我使用jQuery.focusout()作为解决方案,只需再次启动浸入式模式即可

    $('#page_textinput').focusout(function (event) {
        AndroidFullScreen.immersiveMode();
    });
    

    它可能属于“快速和肮脏”类别,但它对我有效。

    根据cordova plugin fullscreen doc,自发布android@5.0.0,在config.xml中设置
    将使用浸入式模式(如果可用),即使没有此插件。第二个解决方案使用cli 6.1.1节省了我的时间。Thx@Julien:是的,没错。但当显示键盘时,会出现状态栏和按钮栏。插件不是这样,只有按钮栏会显示隐藏键盘的按钮。CoderCreative描述的带有剩余条的bug只存在于没有插件的情况下。
    $('#page_textinput').focusout(function (event) {
        AndroidFullScreen.immersiveMode();
    });