[Android] webview 与 h5 upload(2)
解决了无法打开媒体选择器的问题之后,可能还会遇到这样的问题

上传进度一直卡在 0%,有可能是由于 CORS 跨域导致的,本例中因为使用了本地 assets 加载的 web 页面, file:// 协议 导致了跨域。
解决方法:
binding.webView.settings.apply {
javaScriptEnabled = true
loadsImagesAutomatically = true
setSupportZoom(false)
// 允许访问文件
domStorageEnabled = true
allowContentAccess = true
allowFileAccess = true
// 允许 file 协议跨域
allowUniversalAccessFromFileURLs = true
allowFileAccessFromFileURLs = true
}
此时发现虽然有进度了,但是文件上传到 100% 后,发现并没有展示在页面上,而是直接消失。我这里是因为 api 没有正确返回文件 url 导致的。正常来说,api 没有问题的话,可以忽略以下内容。
修复 api 后,整个上传流程恢复正常。