要在WebView中實現離線瀏覽功能,您需要使用緩存機制。以下是一些建議:
WebView webView = findViewById(R.id.webview);
WebSettings webSettings = webView.getSettings();
webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
webSettings.setAppCacheEnabled(true);
String cachePath = getApplicationContext().getCacheDir().getAbsolutePath();
webSettings.setAppCachePath(cachePath);
private class CustomWebViewClient extends WebViewClient {
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
// Handle errors
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl(request.getUrl().toString());
return true;
}
}
webView.setWebViewClient(new CustomWebViewClient());
webView.loadUrl("https://example.com");
這樣,當設備連接到互聯網時,WebView會緩存已訪問的頁面。當設備處于離線狀態時,WebView會加載緩存的頁面。請注意,這種方法可能不適用于所有網站,因為某些網站可能會阻止緩存或需要特定的用戶身份驗證。此外,這種方法可能不適用于那些需要大量資源(例如圖片、視頻等)的網站。