我有一个离子1应用程序,使用$ cordovaCamera从用户检索照片。奇怪的是,在相机打开后(无论用户是拍照,取消,还是从库中选择一个),应用程序一旦关闭就会呈现错误。状态栏覆盖视图顶部,视图底部溢出视口。但是,如果您重新定位设备(从纵向到横向),它将自行修复。
有没有办法强制应用程序手动重绘?
关于错误本身的额外信息:我分别创建了一个新的离子1应用程序并完全复制了相机代码,它没有相同的问题。相同版本的离子,角度,ngCordova和相机插件。所以我认为实际的渲染问题是我的应用程序特有的。然而,经过一整天的捣乱,我无法弄清楚我的生活中发生了什么。
答案 0 :(得分:3)
我们遇到了与cordova-plugin-statusbar版本相同的问题: 2.2.1
解决方案非常简单。我们将此依赖关系降级为版本 2.2.0 ,所有内容都按预期再次运行。
要使用确切版本的cordova插件,请在项目的config.xml
中指定,如下例所示:
<plugin name="cordova-plugin-statusbar" spec="2.2.0"/>
请勿忘记删除./platforms
和./plugins
个文件夹,并在降级插件版本后运行cordova prepare
。
答案 1 :(得分:1)
看看这个插件: cordova-plugin-hidden-statusbar-overlay
只需安装它,然后在调用相机后运行以下代码:
window.plugin.statusbarOverlay.hide();
&#13;
答案 2 :(得分:1)
答案最终非常简单:删除状态栏插件。
我的印象是需要使用状态栏插件才能显示它,但事实并非如此。 StatusBar插件只允许你设置样式 - 但是从iOS 9开始,你只能选择2个选项。
body
元素具有类platform-ios
时,在应用顶部添加填充或边距。根据Apple Developer Docs:状态栏下隐藏的内容。默认情况下,状态栏的背景是透明的,允许下方的内容显示。保持状态栏可读,并不暗示其背后的内容是交互式的。有几种常见的技术可以做到这一点: 1)在您的应用中使用导航栏,该导航栏会自动显示状态栏背景,并确保内容不会显示在状态栏下。 2)在状态栏后面显示自定义图像,例如渐变或纯色。 3)对状态栏后面的内容应用模糊。
你应该得到的是没有插件的完全相同的外观。