如何在打开Android键盘时使我的cordova应用程序全屏?

我创build了一个Cordova应用程序,并在Nexus 4上进行testing。我已经使用了Cordova CLI工作stream程中列出的基本步骤来启动和运行。 我也修改了我的config.xml:

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

我的应用程序按预期运行全屏。 只要我点击一个input字段,键盘会按照预期滑动,但是android的黑色顶部和底部的条也会出现,即使在键盘closures后也会保留。

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

有没有办法可以防止出现顶部和底部的酒吧?

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

Solutions Collecting From Web of "如何在打开Android键盘时使我的cordova应用程序全屏?"

对我来说,在我更新到cli-5.2.0之后开始重现。 到目前为止我find了两个解

  1. 切换回cli-5.1.1
  2. 添加cordova-plugin-fullscreen并将AndroidFullScreen.immersiveMode()放入DeviceReady事件处理程序中。

我更喜欢第二个解决scheme。 我希望这个问题将在未来的cordova版本中解决,我将能够删除我的解决方法。 我相信相关的票是这样的: https : //issues.apache.org/jira/browse/CB-8902

另一种select是使用Cordova Reference Plugin API“StatusBar”。

cordova6.3.1 cli-5.3.7

cordova插件添加cordova-plugin-statusbar

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

 document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { if (window.StatusBar) window.StatusBar.hide(); } 

https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-statusbar/index.html