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];
}