关于ccexp.WebView调用loadURL的bug

cocos lua 使用 关于ccexp.WebView调用loadURL的bug, 发现url的内容变更后,客户端并没有刷新,还是老的数据,应该是被客户端缓存了,重新安装游戏后再进入才可以看到正确的(web服务器最新的)web页面,有哪位开发者遇到类似情况么~

1赞

遇到同样的问题,没法清除缓存!

解决了,修改底层接口可以实现清理缓存!

1赞

@Jeshon 能否分享一下?

/**
 * Loads the given URL.
 *
 * @param url Content URL.
 * @param bCacheData whether to cache data.
 */
void loadURL(const std::string &url, bool bCacheData = true);<a class="attachment" href="/uploads/default/original/2X/8/8e738bc1ab09405f1173fd822594e8a0a5a06751.zip">webview.zip</a> (20.4 KB)

android(Cocos2dxWebViewHelper.java):
webView.getSettings().setCacheMode(bCacheData?WebSettings.LOAD_DEFAULT : WebSettings.LOAD_NO_CACHE);

ios(UIWebViewImpl-ios.mm)

NSURLRequest *request = nil;
if (bCacheData) {
    request = [NSURLRequest requestWithURL:url];
}else{
    request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60];
}

@Jeshon 谢谢。有几个问题请教一下:

  1. bCacheData: 这个是你新加的变量吧?
  2. 这些设置代码是加载哪里?是新增一个接口用于设置是否清除缓存吗?

/**

  • Loads the given URL.
  • @param url Content URL.
  • @param bCacheData whether to cache data.
    */
    void loadURL(const std::string &url, bool bCacheData = true);webview.zip (20.4 KB)

知道了。不好意思,没注意看前面的代码。

解决了:https://github.com/cocos2d/cocos2d-x/pull/17130

:sunglasses:

谢谢两位大神

很费劲呀,解决缓存最简单的办法就是让每次请求的url不一样!就不会有缓存!url后跟着一个随机参数发送就OK
例:http://baidu.com?t=random(1,100000)