当前位置: 首页 > 面试题库 >

Android 4.4 WebView文件选择器无法打开?

马琛
2023-03-14
问题内容

我们正在创建一个使用Web视图的应用程序,它将访问用户需要上传文件的页面。我们遇到了Android
4.4的问题,其中文件选择器没有打开,并且单击“上载”按钮没有任何反应。此功能可使用openFileChooser方法与早期版本一起使用,如下所示:

 webview.setWebChromeClient(new WebChromeClient() {
        //The undocumented magic method override
        //Eclipse will swear at you if you try to put @Override here
        // For Android 3.0+
        public void openFileChooser(ValueCallback<Uri> uploadMsg) {
            mUploadMessage = uploadMsg;
            Intent i = new Intent(Intent.ACTION_GET_CONTENT);
            i.addCategory(Intent.CATEGORY_OPENABLE);
            i.setType("image/*");
            MainActivity.this.startActivityForResult(Intent.createChooser(i, "File Chooser"), FILECHOOSER_RESULTCODE);
        }

        // For Android 3.0+
        public void openFileChooser(ValueCallback uploadMsg, String acceptType) {
            mUploadMessage = uploadMsg;
            Intent i = new Intent(Intent.ACTION_GET_CONTENT);
            i.addCategory(Intent.CATEGORY_OPENABLE);
            i.setType("*/*");
            MainActivity.this.startActivityForResult(
                    Intent.createChooser(i, "File Browser"),
                    FILECHOOSER_RESULTCODE);
        }

        //For Android 4.1
        public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
            mUploadMessage = uploadMsg;
            Intent i = new Intent(Intent.ACTION_GET_CONTENT);
            i.addCategory(Intent.CATEGORY_OPENABLE);
            i.setType("image/*");
            MainActivity.this.startActivityForResult(Intent.createChooser(i, "File Chooser"), MainActivity.FILECHOOSER_RESULTCODE);
        }

    });

我花了大量时间寻找在4.4上实现此目标的方法,但是没有运气。有没有人设法做到这一点?


问题答案:

WebView正常工作

如果我正确理解以上链接的内容,则您(我以及可能还有数百名开发人员)正在寻找黑客手段



 类似资料:
  • 在浏览器中打开一个文件选择器,以便选择文件、目录或数据。 调用: web3.bzz.pick.file() web3.bzz.pick.directory() web3.bzz.pick.data() 参数: 无 返回值: 一个Promise对象,其解析值为一个或多个文件。 示例代码: web3.bzz.pick.file() .then(console.log); > { ... }

  • 主要内容:打开文件,扩展过滤器,保存文件,示例允许用户导航文件系统并选择一个文件或文件夹。 类位于包中。 打开文件 文件选择器可用作打开文件对话框,用于选择单个文件或多个文件,或作为文件保存对话框。以下代码创建一个对象并设置其标题,然后显示给用户。 可以通过设置和属性来配置文件选择器对话框窗口。 扩展过滤器 可以设置扩展过滤器来确定在文件选择器中打开哪些文件。 保存文件 FileChooser API允许用户为由应用程序保存的文件指定文件名及

  • 问题内容: 我可以使用Selenium将文件上传到远程服务器,但是即使文件被上传,文件选择器对话框仍然存在。Selenium常见问题解答指出: “您无法直接与本机OS文件浏览器对话框进行交互,但是我们做了一些魔术操作,以便…。”考虑到此处使用的是“魔术”,因此我得到的行为并不奇怪。边缘有些粗糙。但是似乎有解决方法。我有以下代码: 但是在此之后,文件上传窗口仍然存在。我怀疑由于在Mac上,我需要一个

  • 我已经记录了用于从日期选择器中选择日期的selenium代码。在运行测试用例时,日期选择器会弹出并正确突出显示所选日期。但是没有选择日期。代码如下所示:- 此异常仅出现在记录的代码中。我使用的是selenium-server-standalone-2 . 45 . 0 jar。

  • 点击“添加文件”或“添加 URL”来添加导入源文件。然后,为源文件选择“编码”。 【注意】你可以同时导入多个文件。 ODBC 设置一个 ODBC 数据源连接 安装合适的 ODBC 管理员和文件相关的驱动程序。 在应用程序,选择“工具程式”->“ODBC 管理员”;或在 Navicat 中,在这个步骤点击“ODBC 管理员”按钮。 在“用户数据源名”选项卡点击“添加”按钮。 选择合适的 ODBC 驱

  • 我有一个带有组合框的xaml。由于某种原因,我在那里有一些项目,我不能选择它们,当我选择一个项目时,它通常不允许我更改我的选择,如果它更改了,它仅适用于某些值。这是代码: 我希望我写的很清楚,因为我把它从电脑复制到了手机上。基本上,我有所有的用户,并按部门对他们进行分类。用户只能看到他所在部门的文档,并且可以选择绑定词典中可用的文档。如果不可用,组合框中的项目将为红色且不可检查。这个管用。唯一没有