uni-app离线打包的安卓APP中使用webview组件加载h5工程,h5工程的input[file]文件选择功能失效

uni-app离线打包的安卓APP中使用webview组件加载h5工程,h5工程的input[file]文件选择功能失效

问题描述

uniapp离线打包的安卓APP中使用webview组件加载h5工程,h5工程中的文件选择功能失效

5 回复

有人遇到这个问题么?

更多关于uni-app离线打包的安卓APP中使用webview组件加载h5工程,h5工程的input[file]文件选择功能失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


有人遇到么

请问问题解决了么

后来用的5+api实现的

在uni-app离线打包的安卓APP中,WebView组件加载H5页面时input[file]失效通常是由于WebView未正确配置文件访问权限导致的。以下是解决方案:

  1. 确保AndroidManifest.xml中添加了文件读写权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  1. 在WebView初始化时启用文件访问:
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setAllowContentAccess(true);
webView.getSettings().setAllowFileAccessFromFileURLs(true);
webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
  1. 对于Android 10+版本,需要在WebChromeClient中重写onShowFileChooser方法:
webView.setWebChromeClient(new WebChromeClient() {
    @Override
    public boolean onShowFileChooser(WebView webView, 
                                   ValueCallback<Uri[]> filePathCallback, 
                                   FileChooserParams fileChooserParams) {
        // 实现文件选择逻辑
        return true;
    }
});
  1. 检查H5页面是否使用了正确的accept属性:
<input type="file" accept="image/*">
回到顶部