cocos打开WEBView时,每次都会重新从网络加载网页数据,有一定的时间延迟,对于没有更新的网页,可以采取缓存策略,在需要更新的时候,才使用从网络加载数据的方式,而cocos底层3.13版本,还不支持缓存策略,如果需要缓存策略需要做如下修改:

UIWebView-ini.h添加如下代码
void WebView::setLocalCacheElseNet(bool bFlag)
{
if (_impl!=nullptr)
_impl->setLocalCacheElseNet(bFlag);
}
android端实现代码, Cocos2dxWebView中添加如下代码:
public void setLocalCacheElseNet(boolean bFalg)
{
if(bFalg)
this.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
else
this.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
}
Ios端代码实现,UIWebViewImpl-ios.m中添加如下代码:
- (void)setCachePolicy:(bool)bFlag{
self.localCacheElseNet = bFlag;
}
- (void)loadUrl:(const std::string &)urlString {
if (!self.uiWebView) {[self setupWebView];}
NSURL *url = [NSURL URLWithString:@(urlString.c_str())];
NSURLRequest *request =nullptr;
if(self.localCacheElseNet)
request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60];
else
request =[NSURLRequest requestWithURL:url];
[self.uiWebView loadRequest:request];
}
Cocos2d-x WebView缓存策略
本文介绍如何在Cocos2d-x 3.13版本中为WebView实现缓存策略,以减少网络加载时间。通过在UIWebView-ini.h、Cocos2dxWebView及UIWebViewImpl-ios.m中添加特定代码,可实现在网页未更新时使用缓存数据,提高应用性能。
1899

被折叠的 条评论
为什么被折叠?



