Cordova InAppBrowser 在 iPad iOS 10 上为空白

Posted

技术标签:

【中文标题】Cordova InAppBrowser 在 iPad iOS 10 上为空白【英文标题】:Cordova InAppBrowser is blank on iPad iOS 10 【发布时间】:2017-02-06 16:32:55 【问题描述】:

此问题仅发生在装有 ios 10 的 iPad 上。

当我尝试使用 InAppBrowser 并将 presentationstyle 设置为 fullscreen 时,它弹出很好,但是当我点击完成按钮时,我得到一个空白屏幕。看起来它并没有正确地破坏自己。

我正在使用 Cordova 6.4.0 和 InAppBrowser 插件 1.6.1

【问题讨论】:

【参考方案1】:

不确定这是否适用于您,但我在点击完成按钮后也遇到了空白屏幕的问题,但它只发生在横向。不过还是值得一试:

cordova-plugin-statusbarcordova-plugin-inappbrowser 显然不能一起玩,所以尝试一起删除 cordova-plugin-statusbar 或在退出时添加事件侦听器:

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

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

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

编辑:正如 René 所指出的,存在一个空白列,上面提到了修复。为了在不删除插件的情况下完全解决 iPhone 和 iPad 中的问题,请将 StatusBar.show() 调用封装在一秒的 setTimeout 内:

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

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

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

谢谢勒内!

【讨论】:

谢谢,试试看 谢谢,这行得通。我还必须将StatusBar.show(); 调用封装在一秒钟内的setTimeout 中,因为在inappbrowser 的隐藏动画期间调用它并没有完全删除空白视图,但右侧的空白列仍然可见。动画完成后调用 show() 修复了这个问题。

以上是关于Cordova InAppBrowser 在 iPad iOS 10 上为空白的主要内容,如果未能解决你的问题,请参考以下文章

如何在cordova项目中异步打开inappbrowser

Cordova,为啥需要 InAppBrowser 插件才能在系统浏览器中打开链接

cordova插件新的窗口实例打开连接: cordova-plugin-inappbrowser

Cordova/PhoneGap 打开下载的文件 (InAppBrowser)

Ionic Cordova inappbrowser 在 iOS 中不起作用

Phonegap/Cordova InAppbrowser 文件下载问题