【发布时间】:2017-02-06 16:32:55
【问题描述】:
此问题仅发生在装有 iOS 10 的 iPad 上。
当我尝试使用 InAppBrowser 并将 presentationstyle 设置为 fullscreen 时,它弹出很好,但是当我点击完成按钮时,我得到一个空白屏幕。看起来它并没有正确地破坏自己。
我正在使用 Cordova 6.4.0 和 InAppBrowser 插件 1.6.1
【问题讨论】:
标签: cordova inappbrowser
此问题仅发生在装有 iOS 10 的 iPad 上。
当我尝试使用 InAppBrowser 并将 presentationstyle 设置为 fullscreen 时,它弹出很好,但是当我点击完成按钮时,我得到一个空白屏幕。看起来它并没有正确地破坏自己。
我正在使用 Cordova 6.4.0 和 InAppBrowser 插件 1.6.1
【问题讨论】:
标签: cordova inappbrowser
不确定这是否适用于您,但我在点击完成按钮后也遇到了空白屏幕的问题,但它只发生在横向。不过还是值得一试:
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() 修复了这个问题。