Webview с кешем внутри фрагмента - PullRequest
0 голосов
/ 06 октября 2019

так что я пытаюсь сделать 3 фрагмента с разными веб-обзорами каждый. Но я не могу заставить их работать.

import android.os.Bundle;

import androidx.fragment.app.Fragment;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;


public class Page2Fragment extends Fragment {


    public Page2Fragment() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_page2, container, false);
    }

}

А для веб-просмотра + кеш у меня есть этот код

public class MainActivity extends AppCompatActivity {
    private Context mContext;
    private Activity mActivity;
    private RelativeLayout mRelativeLayout;
    private WebView mWebView;
    private String mUrl="https://www.google.pt";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        requestWindowFeature(Window.FEATURE_ACTION_BAR);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mContext = getApplicationContext();
        mActivity = MainActivity.this;

        mRelativeLayout = (RelativeLayout) findViewById(R.id.rl);
        mWebView = (WebView) findViewById(R.id.web_view);


     renderWebPage(mUrl);
    }

    protected void renderWebPage(String urlToRender) {
        mWebView.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                // Do something on page loading started
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                // Do something when page loading finished

        });

        mWebView.setWebChromeClient(new WebChromeClient() {
            public void onProgressChanged(WebView view, int newProgress) {
            }
        });
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.getSettings().setAppCacheEnabled(true);
        mWebView.getSettings().setAppCachePath(mContext.getCacheDir().getPath());
        mWebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
        mWebView.loadUrl(urlToRender);
    }
}`

Я могу заставить код работать один, в другом приложении, но не с фрагментами. С простым веб-просмотром это тоже нормально, но я действительно хочу «кэшировать» веб-сайт или отобразить сообщение об ошибке, говорящее, что Интернет не включен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...