小编csa*_*ers的帖子

禁用WebView中的缓存,Cookie和其他所有内容

我有一个web服务,我试图在后台使用webview进行身份验证.当我最初发送请求时,它将正常工作(基于凭据的失败/成功),但看起来我似乎得到了缓存响应.

这是我的webview设置代码:

WebView browser = new WebView(this);
WebSettings settings = browser.getSettings();
settings.setJavaScriptEnabled(true);
settings.setSavePassword(false);
settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
settings.setAppCacheEnabled(false);
browser.setWebChromeClient(new WebChromeClient() {
    public void onProgressChanged(WebView view, int progress) {
    Log.d("BROWSERPROGRESS", Integer.toString(progress));
}
});
jsInterface = new AddAccountJSInterface();
browser.addJavascriptInterface(jsInterface, "ADDACCOUNTJSINTERFACE");
browser.setWebViewClient(new AddAccountClient(this));
Run Code Online (Sandbox Code Playgroud)

因此,您可能会看到我有两个额外的类来控制我的webView:

  1. 为javascript提供接口的对象(AddAccountJSInterface)
  2. WebViewClient

另外我有一个WebChromeClient,但它只用于调试,我很确定它不会干扰任何事情.

JS界面简单地提供了一种简单的方法来获取正文HTML以进行分析,所以我相信这也不是问题.

WebViewClient中包含以下代码,该代码根据来自Web服务的各种响应执行大部分"自定义"工作.

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if(url.contains(INSTALL_PREFIX)) {
            HashMap<String, String> params = extractParameters(url);
            verificationComplete(params);
            return true;
        }
        return false;
    }

    @Override
    public void onPageFinished(WebView view, String url){
        if(invalidShop(view)) {
            Toast.makeText(context, context.getString(R.string.no_find_shop), Toast.LENGTH_SHORT).show();
            shopAddressField.requestFocus();
            replaceUiElements(loadingBar, addAccountButton); …
Run Code Online (Sandbox Code Playgroud)

javascript android android-webview

5
推荐指数
1
解决办法
6607
查看次数

标签 统计

android ×1

android-webview ×1

javascript ×1