如何有效地实现混合HTML和本机面板的Feed UI?

时间:2015-10-28 23:42:18

标签: android android-webview

我想要实现一个应用程序,其主视图类似于异类Twitter提要 - 提要中的一些卡片将呈现为HTML,其他卡片将以原生方式呈现。原因:

  • 提供原生外观
  • 提供一些openGL性感
  • 确保Feed窗口本身不是webview并且本地管理以避免HTML-jitter-suck)
  • 确保可以将新类型的内容推送到应用,而无需更新应用。

我怀疑拥有很多独立的webview组件会非常昂贵,特别是因为每张HTML卡都会共享一组通用的CSS和JS。

那么,有没有办法优化这种情况?因为我有很多HTML卡,我希望他们分享共同的资源。例如,WebView可以支持多个DOM窗口,每个窗口都可以定位到我的Feed视图中的单独Android面板吗? (或者我可以在多个WebView之间共享HTML执行组件吗?)

喜欢这个......

enter image description here

(注意:HTML卡都包含交互式元素 - 呈现为图像无效)

可以为多个WebView共享单个webkit WebViewClient吗?

1 个答案:

答案 0 :(得分:1)

据我所知,不,您不能使用单个WebView提供多个物理视图。

但是,您所描述的内容看起来像RecyclerView中的卡片(您描述为'原生容器')。 在这种情况下,您只会拥有与可见卡一样多的WebView(加上,可能是2个屏幕外缓存),所以一次只有少数几个,而不是数百个。

如果需要,可能能够通过重新使用一小组WebView来保存一些渲染时间,并在适配器的绑定阶段将它们重新分配给项目UI。

是的,你当然可以在多个WebView中共享一个WebViewClient - 这就是为什么几乎所有的WebViewClient方法都将WebView作为第一个参数。