[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 后,整个上传流程恢复正常。

发表评论


*