我正在为Android上的Web应用程序构建一个瘦的本机包装器。我想保留我的HTML&网络上的Javascript,因为它会降低应用程序需要更新的频率。
但是,我想利用SD卡存储来存储视频 - 我的应用程序有几个可能会多次播放的视频,所以我宁愿下载它们并从本地副本播放它们。
我已成功完成的任务:
当通过下载视频并将其保存到@JavascriptInterface
getExternalFilesDir(Environment.DIRECTORY_MOVIES).getAbsolutePath()
来调用
编写一个脚本,在下载完成后用src
Url替换html元素的file://
。
问题
我在控制台中收到javascript错误:
"Not allowed to load local resource: file:///storage/emulated/0/Android/data/path/to/video.mp4"
我认为这是因为我有一个视频元素
<video src="file:///......."/>
由不同的(非本地)域名提供服务,因此webview的安全性说不。
有几个WebSettings
方法,例如setAllowFileAccess()
,但他们明确指出这只能启用JavaScript访问文件而不是HTML元素,例如<img>
或(在这种情况下){{1 }}
这有什么办法吗? 如果没有,我的替代方法应该是什么?
修改:
我可以只使用内置的浏览器缓存吗?