Cordova:在iOS上,Inappbrowser打破UI,而屏幕方向从横向更改为纵向

时间:2016-03-16 07:07:35

标签: ios cordova cordova-plugins inappbrowser

我正在使用cordova 5.4.1开发应用程序,我也在使用最新的InAppBrowser插件。以下是重现该问题的步骤。

  1. 在InAppBrowser中打开网址
  2. 将应用方向从纵向更改为横向
  3. 按InAppBrowser的完成按钮并仅以横向模式检查应用程序,您将获得一些空白部分
  4. 我正在使用iOS 9.2.1

    如果有人遇到同样的问题并得到解决,请告诉我。

    提前谢谢。

1 个答案:

答案 0 :(得分:0)

我知道有点晚了,但我想分享一下如果我或其他任何人遇到这个问题我会如何解决这个问题。

正如jcesarmobile评论中提到的问题所述,cordova-plugin-statusbar& cordova-plugin-inappbrowser不要在一起玩得很好。机票状态显示已解决,但我仍然遇到此问题。要修复它,你可以删除插件,或者,如果你需要插件,那么你可以添加一个事件监听器来隐藏然后在退出时再次显示它:

openUrl(url) {
  let ref = cordova.InAppBrowser.open(url, '_blank', options);

  ref.addEventListener('exit', () => {
    StatusBar.hide();
    StatusBar.show();
  })
}

StatusBar.hide()解决了这个问题。

编辑:正如René在this similar issue的评论中所述,iPad中存在一个空白列,其中包含上述修复程序。为了在iPhone和iPad上完全解决问题而不必删除插件,请将StatusBar.show()调用包装在一秒钟的setTimeout中:

openUrl(url) {
  let ref = cordova.InAppBrowser.open(url, '_blank', options);

  ref.addEventListener('exit', () => {
    StatusBar.hide();

    setTimeout( () => {
      StatusBar.show();
    }, 1000)
  })
}