gpt4 book ai didi

android - 为什么我在 Android 上的 webview 加载缓慢?

转载 作者:行者123 更新时间:2023-11-29 00:58:59 25 4
gpt4 key购买 nike

当我在浏览器中尝试链接时,它打开得非常快在我的 Android webview 上,它运行缓慢我应该怎么做才能使我的 webview 运行得更快?

webview.settings.javaScriptEnabled = true
val title = response.body()?.attachment
val filename = "http://lalala.com" + title
webview.loadUrl("http://docs.google.com/gview?embedded=true&url=" + filename)
webview.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH)
webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE)
if (Build.VERSION.SDK_INT >= 19) {
webview.setLayerType(View.LAYER_TYPE_HARDWARE, null);
}
else {
webview.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
webview.webViewClient = object : WebViewClient() {

override fun onPageFinished(view: WebView, url: String) {
// do your stuff here
progressbar.visibility = View.GONE
webview.loadUrl("javascript:(function() { " +
"document.querySelector('[role=\"toolbar\"]').remove();})()")
}
}

最佳答案

不幸的是,您无法解决这个问题。然而:

不过,您可以尝试一些事情,还有一些事情需要检查。具体来说:

您在页面加载时将可见性设置为 View.GONE(使您的 webview 不可见),然后在页面加载后使其再次可见。这可能是问题所在。

尝试不使用它,您可能会发现它会更快。根据我的经验,onPageFinished(..) 只会在页面加载后的一段时间内触发。

页面真的需要 JavaScript 吗?如果没有,请不要启用它。

如果您的情况可行,您可以使用 Jsoup 等 HTML 解析器从页面中仅提取所需的数据,并将其显示给用户。这样会快很多。

如果页面使用 Ajax 动态加载数据,您也可以直接从它使用的端点加载数据。在桌面浏览器中打开页面,然后打开开发者工具的网络选项卡,了解页面的工作方式和加载数据的方式。

您可以使用 shouldInterceptRequest(..) 阻止来自 WebView 的请求。如果页面有类似的东西,这可能会有所帮助。 Facebook 共享您不需要的按钮或额外图像。阻止这些将加快加载时间。

如果您向我们展示您正在使用的 URL,也许我可以进行更多调查并准确地告诉您如何在您的案例中加快速度。让我知道是否有帮助。

关于android - 为什么我在 Android 上的 webview 加载缓慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52489820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com