Cordova InAppBrowser 隐藏时速度较慢

Posted

技术标签:

【中文标题】Cordova InAppBrowser 隐藏时速度较慢【英文标题】:Cordova InAppBrowser slower when hidden 【发布时间】:2016-04-20 16:18:34 【问题描述】:

我注意到,当使用 Cordova InAppBrowser 加载页面时,如果将其设置为 hidden=yes,则加载时间会更长。发生了什么事?

慢:

ref = cordova.InAppBrowser.open(url, '_blank', 'location=yes,hidden=yes,clearsessioncache=yes');

快速:

ref = cordova.InAppBrowser.open(url, '_blank', 'location=yes,hidden=no,clearsessioncache=yes');

编辑 InAppBrowser.java 我发现 inappbrowser 本质上是对话框中的 web 视图,并且设置“hidden=yes”启动会隐藏对话框。为什么隐藏对话框时webview会慢得多?

【问题讨论】:

对话框中的 webview 是什么意思?你能描述一下你调用 InAppBrowser 的上下文吗? 我查看了inappbrowser插件的来源并研究了它。它是一个放在对话框中的 webview。因此,当设置 inappbrowser 隐藏时,我基本上隐藏了对话框。为什么如果 inappbrowser 被隐藏它会更慢? 【参考方案1】:

据此page

我们将 hidden 属性设置为 yes,以便仅在页面内容加载后才能显示浏览器。这样一来,用户在等待内容出现时就不会看到空白的浏览器。

类似地,如果您将隐藏属性设置为没有浏览器将在加载时显示。

【讨论】:

但我不想展示它。它只是在网络浏览器中运行一些 javascript 并返回一些数组。问题是它可以工作,但速度很慢。【参考方案2】:

我考虑了最佳实践,在第一次加载时隐藏inappbrowser并在页面加载时放置一个加载屏幕,然后在加载完成时显示隐藏页面,但如果你在所有加载页面中都设置它,应用程序性能会更慢,因为隐藏和显示inappbrowser页面太慢了......顺便说一下,当inappbrowser正在加载toast库时,最好显示图像加载或文本。我修改了一个 toast 库以显示具有此目的的图像:https://github.com/Ahiaz/toast_with_image。

【讨论】:

以上是关于Cordova InAppBrowser 隐藏时速度较慢的主要内容,如果未能解决你的问题,请参考以下文章

Cordova inAppBrowser 如何隐藏 URL 并仅显示完成按钮

在cordova inappbrowser中添加按钮以将其隐藏编辑:并通过Javascript将图像添加到inappbrowser

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

Cordova InAppBrowser立即关闭iOS 13

cordova插件:inappbrowser

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