如何在房间数据库中保存用webView阅读的网页内容。
我想保存缓存不是数据库的选项,我找不到任何其他选项,也没有可以将网页内容保存在数据库中以供脱机查看的任何示例..>!
那么,有什么帮助,例子或建议吗?
先谢谢..!
也许有可能完全可以向我提供信息,因为我有一个任务,并且我不知道我是否正在考虑这种情况...!
我看到了这个选项,但是就像我说的那样保存了缓存,没有一个示例可以将其保存在Room数据库中。
WebView webView = new WebView( context );
webView.getSettings().setAppCacheMaxSize( 5 * 1024 * 1024 ); // 5MB
webView.getSettings().setAppCachePath( getApplicationContext().getCacheDir().getAbsolutePath() );
webView.getSettings().setAllowFileAccess( true );
webView.getSettings().setAppCacheEnabled( true );
webView.getSettings().setJavaScriptEnabled( true );
webView.getSettings().setCacheMode( WebSettings.LOAD_DEFAULT ); // load online by default
if ( !isNetworkAvailable() ) { // loading offline
webView.getSettings().setCacheMode( WebSettings.LOAD_CACHE_ELSE_NETWORK );
}
webView.loadUrl( "http://www.google.com" );
答案 0 :(得分:1)
您需要做的是从URL中以字符串形式下载html内容,并将其保存在会议室数据库中。您可以像下面这样使用okhttp
String url = "https://google.com";
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(url)
.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful()) {
final String aFinalString = response.body().string();
//Save this string in your room database
} else {
}
}
});
要显示您刚刚下载的网页,您可以尝试
webView.loadData(yourData, "text/html; charset=utf-8", "UTF-8");
其中yourData是从Room DB检索到的字符串