相关疑难解决方法(0)

Android Webview - 完全清除缓存

我的一个活动中有一个WebView,当它加载一个网页时,该页面从Facebook收集了一些背景数据.

我所看到的是,每次打开和刷新应用程序时,应用程序中显示的页面都是相同的.

我已经尝试将WebView设置为不使用缓存并清除WebView的缓存和历史记录.

我也遵循了这里的建议:如何为WebView清空缓存?

但这一切都不起作用,有没有人有任何想法我可以克服这个问题,因为它是我的应用程序的重要部分.

    mWebView.setWebChromeClient(new WebChromeClient()
    {
           public void onProgressChanged(WebView view, int progress)
           {
               if(progress >= 100)
               {
                   mProgressBar.setVisibility(ProgressBar.INVISIBLE);
               }
               else
               {
                   mProgressBar.setVisibility(ProgressBar.VISIBLE);
               }
           }
    });
    mWebView.setWebViewClient(new SignInFBWebViewClient(mUIHandler));
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.clearHistory();
    mWebView.clearFormData();
    mWebView.clearCache(true);

    WebSettings webSettings = mWebView.getSettings();
    webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);

    Time time = new Time();
    time.setToNow();

    mWebView.loadUrl(mSocialProxy.getSignInURL()+"?time="+time.format("%Y%m%d%H%M%S"));
Run Code Online (Sandbox Code Playgroud)

所以我实现了第一个建议(尽管改变了代码是递归的)

private void clearApplicationCache()
{
    File dir = getCacheDir();

    if(dir!= null && dir.isDirectory())
    {
        try
        {
            ArrayList<File> stack = new ArrayList<File>();

            // Initialise the list
            File[] children = dir.listFiles();
            for(File child:children)
            {
                stack.add(child);
            } …
Run Code Online (Sandbox Code Playgroud)

android caching webview

103
推荐指数
6
解决办法
16万
查看次数

强制反应本机Web视图以忽略webview的缓存版本

上下文

目前正在开发HTML&JS重型项目,这是一个反应原生项目.所有HTML和JS都在本地引用(没有超过http).

问题

每当我对HTML或JS进行更改时,我都看不到更改(刷新本机代码或只是再次运行它),因此我不得不完全卸载应用程序.

有没有办法忽略这些文件的缓存版本(假设存在缓存机制)

我没有找到关于这个主题的任何有效资源,所以任何反馈都将非常感谢,谢谢.

android ios react-native

11
推荐指数
1
解决办法
6523
查看次数

如何在Android上使用ServiceWorkerController

我在查看 Android WebView 文档时遇到了ServiceWorkerController,并决定尝试一下。不幸的是我无法拦截任何电话。我知道WebViewClient.shouldInterceptRequest但有兴趣了解有关 ServiceWorkerController 的更多信息。不幸的是,这些文档比我下面已经实现的内容有点稀疏。任何帮助,将不胜感激。

我已经组装了一个由单个 Activity 组成的简单应用程序。

package com.example.myapplication;


import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.webkit.ServiceWorkerClient;
import android.webkit.ServiceWorkerController;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity {
    private final static String LOGTAG = MainActivity.class.getSimpleName();

    private WebView mWebView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ServiceWorkerController.getInstance().setServiceWorkerClient(new ServiceWorkerClient() {
            @Override
            public WebResourceResponse shouldInterceptRequest(WebResourceRequest request) {
                Log.e(LOGTAG, "in service worker");
                return null;
            }
        });

        setContentView(R.layout.activity_main);

        mWebView = (WebView) findViewById(R.id.activity_main_webview); …
Run Code Online (Sandbox Code Playgroud)

java android hybrid-mobile-app

2
推荐指数
1
解决办法
9089
查看次数

标签 统计

android ×3

caching ×1

hybrid-mobile-app ×1

ios ×1

java ×1

react-native ×1

webview ×1