android - 如何在 android 的应用程序数据库中保存 .HTML 页面/文件?

标签 android html sqlite

我现在正在开发一个用作书架的应用程序,用户可以在其中阅读他们选择的书籍,现在我正在做的是,显示我制作的 html 页面,在我的应用程序中的 WebView 。 现在这个应用程序只有在用户的手机上有全时互联网连接时才能工作。 我真正想要的是当他们第一次打开应用程序时,他们需要互联网连接,然后应用程序应该能够下载该页面并将其存储在本地数据库中,以便用户稍后可以在没有任何互联网连接的情况下阅读它。 那么有没有可能下载 html 页面并将其存储在本地数据库中,以便用户即使没有连接到互联网也可以使用该应用程序? 如果需要,我可以在这里发布我的代码。 任何最小的提示或帮助都会非常有用,因为我长期以来一直被困在这里:(

编辑 1:

所以我成功地从网站上下载了 HTLM 页面,但现在我面临的问题是,我看不到下载的 html 的任何图像。对此有什么合适的解决方案?

最佳答案

这里“本地数据库”是什么意思?

首选方法是将您的页面下载到内部存储 (/<data/data/<application_package_name>) (默认情况下,非 root 设备对您的应用程序是私有(private)的)或外部存储 (public access) .然后在用户设备没有互联网连接时从该存储区域引用页面 (offline mode)。

更新:1

要存储这些页面,您可以使用简单的 File Android 中的读/写操作。

例如:

String FILENAME = "hello_file";
String string = "hello world!";

FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();

此示例将文件 hello_file 存储在应用程序的内部存储目录中。

更新:2 下载网络内容

HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpGet httpGet = new HttpGet("http://www.xxxx.com");
HttpResponse response = httpClient.execute(httpGet, localContext);
String result = "";

BufferedReader reader = new BufferedReader(
    new InputStreamReader(
      response.getEntity().getContent()
    )
  );

String line = null;
while ((line = reader.readLine()) != null){
  result += line + "\n";
}

//现在你已经在结果变量上加载了整个 HTML

所以在文件中写入结果变量,使用我的更新 1 代码。简单..:-)

不要忘记在您的 android 应用程序的 list 文件中添加这两个权限。

  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  <uses-permission android:name="android.permission.INTERNET"></uses-permission>

关于android - 如何在 android 的应用程序数据库中保存 .HTML 页面/文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11338486/

相关文章:

android - 如何从android中的listview中删除一个项目

android - 如何使用Android Profiler在Android中查找不需要的引用

javascript - 如何根据父元素调整文本区域的大小

sqlite - SQLite 中的 case 语句

sql - 逐行解析sqlite查询

android - Kotshi 问题 - Unresolved KotshiApplicationJsonAdapterFactory 引用

android - 如何禁用 Recyclerview 的手动滚动?

html - CSS 在缩小屏幕时保持背景不变?

html - 使用 VBA 进行网页抓取 - 更改输入框的值

相当于 ROW_NUMBER 的 SQLITE