我想要实现一个应用程序,其主视图类似于异类Twitter提要 - 提要中的一些卡片将呈现为HTML,其他卡片将以原生方式呈现。原因:
我怀疑拥有很多独立的webview组件会非常昂贵,特别是因为每张HTML卡都会共享一组通用的CSS和JS。
那么,有没有办法优化这种情况?因为我有很多HTML卡,我希望他们分享共同的资源。例如,WebView可以支持多个DOM窗口,每个窗口都可以定位到我的Feed视图中的单独Android面板吗? (或者我可以在多个WebView之间共享HTML执行组件吗?)
喜欢这个......
(注意:HTML卡都包含交互式元素 - 呈现为图像无效)
可以为多个WebView共享单个webkit WebViewClient吗?
答案 0 :(得分:1)
据我所知,不,您不能使用单个WebView提供多个物理视图。
但是,您所描述的内容看起来像RecyclerView中的卡片(您描述为'原生容器')。 在这种情况下,您只会拥有与可见卡一样多的WebView(加上,可能是2个屏幕外缓存),所以一次只有少数几个,而不是数百个。
如果需要,可能能够通过重新使用一小组WebView来保存一些渲染时间,并在适配器的绑定阶段将它们重新分配给项目UI。
是的,你当然可以在多个WebView中共享一个WebViewClient - 这就是为什么几乎所有的WebViewClient方法都将WebView作为第一个参数。