如何在网络视图内访问Android应用程序的本地文件

时间:2019-07-11 06:50:19

标签: javascript android cors

我有一个要在android的webview中加载的webapp。

该应用包含一些1MB的巨大文件,这些文件未缓存在Webview中,因此每次加载文件所花费的时间都很少。作为实验,我想将这些文件包含在应用程序的资产文件夹中,并使用webview内的javascript提取从那里加载。

但是我最终遇到了如下所示的cors异常

VM45:769 Fetch API cannot load `file:///android_asset/kixr_detector_001.wasm. URL scheme must be "http" or "https" for CORS request.`

反正是否有将android资产文件夹中的文件加载到在Webview中运行的应用程序的功能?或其他缓存这些文件的方式。

非常感谢您的帮助。 预先感谢。

2 个答案:

答案 0 :(得分:0)

从此处提到的评论中:Fetch API cannot load file:///C:/Users/Jack/Desktop/Books_H/book-site/public/api/books. URL scheme must be "http" or "https" for CORS request

  

浏览器不允许带有ajax调用的file:// URL(出于安全性考虑)   原因)。您需要通过网络服务器加载网页并   您使用http://或https://通过该Web服务器发出的ajax请求,   不是file:// –


(来自评论)
您可以尝试通过以下方式在WebView中启用caching

webViewComp.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
webViewComp.getSettings().setAppCacheEnabled(true)

答案 1 :(得分:0)

您可以通过以下代码的Webview设置启用WebView缓存

webview.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT)       
webview.getSettings().setAppCacheEnabled(true);