我需要在Android设备的内部或外部内存中加载和检索HTML网页。我需要的是使用web-view在android中下载和检索网页。
有许多类似于下载或保存网页的重复问题。但是没有一个答案对我有帮助。指导我!
提前致谢。
答案 0 :(得分:6)
Get the HTML code from loaded WebView
Save String as html file android
通过以上两个链接,您可以达到您的要求, 您可以将html内容存储到文件中,然后存储到内部存储中,然后您可以在离线模式下加载。
答案 1 :(得分:6)
我不知道这个解决方案适合您。如果您想在离线模式和在线模式下查看网站,您可以使用网络抓取工具从网站获取所有数据。Here是一个android web crawler的示例项目。之后您可以根据您的互联网可用性从网址或本地内存加载网站。
答案 2 :(得分:0)
WebView
可以加载并呈现remote
和local
个html网页,此外它还支持'data' scheme URL
。
共享偏好设置(在您的情况下无用)
将私有原始数据存储在键值对中。
内部存储(建议您使用)
将私人数据存储在设备内存中。
外部存储空间(您 可以 在您的情况下使用,但不建议使用)
将公共数据存储在共享外部存储上。
SQLite数据库( 可以 在您的情况下使用,但不建议使用)
将结构化数据存储在私有数据库中。
网络连接( 可以 在您的情况下使用,但无法在离线模式下使用)
使用您自己的网络服务器在网络上存储数据。
答案 3 :(得分:0)
您可能想尝试使用shouldInterceptRequest
的{{1}}方法,该方法使用set WebViewClient
。它允许您了解在html加载过程中加载的所有资源。所以你可以这样做:
WebView
答案 4 :(得分:0)
将网页保存到缓存中;
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
点击此链接WebView load website when online, load local file when offline