相机打开后,离子应用程序渲染不正确

时间:2016-12-20 16:25:17

标签: angularjs cordova ionic-framework

我有一个离子1应用程序,使用$ cordovaCamera从用户检索照片。奇怪的是,在相机打开后(无论用户是拍照,取消,还是从库中选择一个),应用程序一旦关闭就会呈现错误。状态栏覆盖视图顶部,视图底部溢出视口。但是,如果您重新定位设备(从纵向到横向),它将自行修复。

有没有办法强制应用程序手动重绘?

关于错误本身的额外信息:我分别创建了一个新的离子1应用程序并完全复制了相机代码,它没有相同的问题。相同版本的离子,角度,ngCordova和相机插件。所以我认为实际的渲染问题是我的应用程序特有的。然而,经过一整天的捣乱,我无法弄清楚我的生活中发生了什么。

3 个答案:

答案 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

只需安装它,然后在调用相机后运行以下代码:

&#13;
&#13;
window.plugin.statusbarOverlay.hide();
&#13;
&#13;
&#13;

答案 2 :(得分:1)

答案最终非常简单:删除状态栏插件。

我的印象是需要使用状态栏插件才能显示它,但事实并非如此。 StatusBar插件只允许你设置样式 - 但是从iOS 9开始,你只能选择2个选项。

  1. 完全删除状态栏插件。不要忘记编辑bower.json,config.xml,设置StatusBar默认值的离子应用程序中的初始化代码等。
  2. body元素具有类platform-ios时,在应用顶部添加填充或边距。根据Apple Developer Docs:
  3.   

    状态栏下隐藏的内容。默认情况下,状态栏的背景是透明的,允许下方的内容显示。保持状态栏可读,并不暗示其背后的内容是交互式的。有几种常见的技术可以做到这一点:   1)在您的应用中使用导航栏,该导航栏会自动显示状态栏背景,并确保内容不会显示在状态栏下。   2)在状态栏后面显示自定义图像,例如渐变或纯色。   3)对状态栏后面的内容应用模糊。

    你应该得到的是没有插件的完全相同的外观。