如何让基于Web视图的Android应用程序在磁盘上存储大量文件?

时间:2015-05-15 23:34:46

标签: android android-webview

我正在制作一款Android应用,可让用户在从RSS Feed中检索视频文件后,将大量视频文件存储在磁盘上。该应用程序将在Web视图中运行。我正在使用XHR请求获取视频。

如何从javascript向包含下载文件数据的java发送消息?

我的意思是......我可以将文件存储在web视图浏览器中的indexdb中。但是,app cache和indexdb等浏览器缓存API具有严格的配额。我不认为我可以在这些配额中存储许多视频文件。

看起来配额更新程序API也已弃用,因此我无法更改网络存储配额:http://developer.android.com/reference/android/webkit/WebStorage.QuotaUpdater.html

似乎我唯一的选择是从Web视图发送文件数据作为java代码处理的消息(并将文件存储在本地磁盘上)。后来,我可以让java告诉Web视图它以前存储过的数据。如何使用android API发送这样的消息?

1 个答案:

答案 0 :(得分:2)

  

我正在使用XHR请求获取视频

脱下袖口,我不会。通常视频文件很大,如果你真的想要下载它们,你就不能通过活动来做到这一点,无论是否由WebView提供支持。

  

似乎我唯一的选择是从Web视图发送文件数据作为java代码处理的消息(并将文件存储在本地磁盘上)。后来,我可以让java告诉Web视图它以前存储过的数据。如何使用android API发送这样的消息?

addJavascriptInterface()上使用WebView将Java对象注入WebView的JavaScript环境中。在该Java对象上,有一个方法可以使用Service(可能是IntentService)或DownloadManager下载视频文件,并给出文件的URL。这不仅可以解决您如何在设备上本地存储文件的问题,而且如果用户在下载过程中导航离开您的应用程序,则视频更有可能实际成功下载。