为啥多个 WebView 不能共享缓存?

Posted

技术标签:

【中文标题】为啥多个 WebView 不能共享缓存?【英文标题】:Why multiple WebView can't share the cache?为什么多个 WebView 不能共享缓存? 【发布时间】:2020-11-20 03:25:20 【问题描述】:

我有一个使用 react-native 开发的应用程序。使用了 react-native-webview 和 react-navigation 插件。

当我打开一个包含 webview 的界面,然后跳转到另一个包含 webview 的界面时,我发现他们无法共享缓存。上一页引用的静态文件在下一页再次加载。

但是如果我在同一个webview中重定向网页的url,缓存会起作用,一切正常。

react-native-webview使用默认配置,静态文件请求的cache-control正常。

不知道android下的webview性能是这样的,还是另有问题?

 <WebView
          ref=this.webview
          source=uri: url
          mixedContentMode="compatibility"
          useWebKit=true
          allowsInlineMediaPlayback=true
          allowsFullscreenVideo=true
          onNavigationStateChange=this._onNavigationStateChange
          onLoadStart=this._onLoadStart
          onLoadEnd=this._onLoadEnd
          onMessage=this.invoke.listener
        />

【问题讨论】:

【参考方案1】:

设置sharedCookiesEnabled=true

【讨论】:

以上是关于为啥多个 WebView 不能共享缓存?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Youtube 视频没有在 webview android 中播放

android的webview缓存相关知识收集

为啥我的全屏 webview 在打开后会立即关闭?

为啥android Webview默认不检查缓存?

javascript 提供用于从React-Native WebView发送和接收消息的示例实现(使用postMessage / onMessage WebVie)

volatile为啥不能保证原子性