webview部分手机无法加载iframe内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webview部分手机无法加载iframe内容相关的知识,希望对你有一定的参考价值。

参考技术A webview部分手机无法加载iframe内容可能是卡了,webactivityA对全局webview停止了js加载,影响了webactivityB加载。 方案1:虽然能通过手机里的webview多进程解决这个问题但是不建议这样. 参考技术B 在wkwebview里面设置iframe后要自己刷新, safari会自己刷新数据.如果传值失败, iframe是不加载的, 在wkwebview中可以用其他方式传值, 如messagehandler

Android Webview第一次加载慢

【中文标题】Android Webview第一次加载慢【英文标题】:Android Webview loading slow for the first time 【发布时间】:2021-07-03 02:40:59 【问题描述】:

我创建了一个库来使用 Webview 启动活动。 我正在尝试加载其中带有 iframe 的本地 HTML 文件每当我开始活动时,第一次它需要大约。 5 秒显示 iframe。第二次大约需要。显示 2 秒。

如何减少首次加载的加载时间?

这里分别是两个java文件。

WebviewOverlay.java

String botUrl = "someurl";
myWebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
myWebView.loadUrl(botUrl);
return myWebView;

WebviewActivity.java

wb = new WebviewOverlay();
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().add(R.id.container, wb).commit();

【问题讨论】:

第一次在没有缓存的情况下加载整个 webView。第二次从缓存中加载,因此加载时间较短。 有什么我们可以做的,比如预加载缓存@Narendra_Nath 当然。请在下面查看我的答案 【参考方案1】:

这与Android无关,网页有很多数据,或者可能是需要时间的高分辨率图像或页面上的任何脚本在加载时需要时间

【讨论】:

【参考方案2】:

您可以使用预缓存来加快网页加载速度。

    从服务器加载数据 (HTML) 并将其保存到我们设备内存中的文本文件中。 启动协程加载网页并存储在本地存储中 创建一个新 Activity,我们将在其中创建一个 webview,用于加载这个缓存的网页。 更改我们 webview 的一些设置以启用对 javascript、domstorage、数据库等的支持。 将 webclient 附加到我们的 webview 加载我们之前创建的包含所有缓存的 HTML 的文件并将其加载到 webview

这里有一个 Github 存储库,它完全可以满足您的需求。

https://github.com/iambaljeet/WebViewPreCache

【讨论】:

【参考方案3】:

尝试在您的网页中使用优化的图像。从 mspaint 调整大小

【讨论】:

以上是关于webview部分手机无法加载iframe内容的主要内容,如果未能解决你的问题,请参考以下文章

Android webview 无法渲染通过 iframe 嵌入的 youtube 视频

iFrame 无法在手机或平板电脑上加载

解决部分WebView无法播放视频的情况

检测动态加载的 iframe

解决iOS与pad里ifram无法滑动问题

WebView 无法加载 Imgur 相册