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-statusbar
和 cordova-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插件新的窗口实例打开连接: cordova-plugin-inappbrowser
Cordova/PhoneGap 打开下载的文件 (InAppBrowser)