提问人:brospars 提问时间:10/27/2022 更新时间:10/27/2022 访问量:658
Bug Android 提供本地文件 net::ERR_FAILED
Bug Android serving local files net::ERR_FAILED
问:
作为移动应用程序开发的一部分,我们在 Android WebView 中遇到了本地视频播放问题。
技术栈:
- 离子/角度
- 电容器(本机运行时充当 webview 和本机代码之间的接口)
- Java的 Android
访问以前下载的本地视频文件时,随机出现此问题。
电容器通过本地服务器为手机的本地文件提供服务,以绕过协议的 webview 限制。为此,它会捕获带有前缀的请求,并返回一个 (Java Android),其中包含一个 但是,有时 webview 收到的响应是这样的:file://
_capacitor_file
WebResourceResponse
FileInputStream
GET http://localhost/_capacitor_file_/data/user/0/io.ionic.starter/files/videoXYZ.mp4 net::ERR_FAILED
Java 中没有发出可以清楚地识别错误来源的错误。
电容器来源 : https://github.com/ionic-team/capacitor/blob/main/android/capacitor/src/main/java/com/getcapacitor/WebViewLocalServer.javaWebViewLocalServer
引起我注意的另一点是,在视频出现错误的情况下,返回的请求(就在使用 Android Studio 调试器失败之前)包含看似错误的标头:
// Range seems wrong : 1055736-1055735 =\> video bug
{Accept-Ranges=bytes, Cache-Control=no-cache, Content-Range=bytes 1055736-1055735/1055736}
// Range is correct : 0-1589247 =\> video works
{Accept-Ranges=bytes, Cache-Control=no-cache, Content-Range=bytes 0-1589247/1589248}
我在 Capacitor 存储库上打开了一个问题:https://github.com/ionic-team/capacitor/issues/6021 但我不确定它是否有问题。
相反,使用 Android Studio 调试器,我认为它可能与 Chomium Webview 有关,因为我看到响应被发送回这个函数:https://github.com/chromium/chromium/blob/main/components/embedder_support/android/java/src/org/chromium/components/embedder_support/util/InputStreamUtil.java#L42 这将解释为什么我没有看到任何 Java 错误......@CalledByNative
这远远超出了我的技能,这就是为什么我需要你的帮助。
重现错误的基本应用程序:https://github.com/brospars/bugvid
答: 暂无答案
评论
the response received by the webview is this: GET http://localhost/_capacitor_file_/data/user/0/io.ionic.starter/files/videoXYZ.mp4 net::ERR_FAILED
收到?快速浏览了一下 github 源代码,但我没有看到“错误失败”。Webview 将检测到错误,然后生成此消息。但是服务器上出现了哪个错误。.如果服务器上有一个?Capacitor serves local files of the phone via a local server ..