如何在Android应用程序中以在线和离线模式加载或检索网页?

时间:2015-11-25 11:42:01

标签: android html webview offline-caching android-external-storage

我需要在Android设备的内部或外部内存中加载和检索HTML网页。我需要的是使用web-view在android中下载和检索网页。

有许多类似于下载或保存网页的重复问题。但是没有一个答案对我有帮助。指导我!

提前致谢。

5 个答案:

答案 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可以加载并呈现remotelocal个html网页,此外它还支持'data' scheme URL

Storage Options

共享偏好设置(在您的情况下无用)

  

将私有原始数据存储在键值对中。

内部存储(建议您使用)

  

将私人数据存储在设备内存中。

外部存储空间(您 可以 在您的情况下使用,但不建议使用)

  

将公共数据存储在共享外部存储上。

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