【问题标题】:How to open camera in android webview?如何在android webview中打开相机?
【发布时间】:2018-01-24 18:05:15
【问题描述】:

我有一个在 android webview 中打开的网页。要求是直接在点击文件选择器上启动相机。

我已经编写了以下选择图像的代码:

<input id="files" type="file" name="images[]" multiple accept="image/*" capture="camera"/>

这在 chrome 浏览器中运行良好,并打开相机以捕获图像。但是,当在 webview 中调用同一页面时,它会要求从相机、图库和类似应用程序中进行选择。

【问题讨论】:

  • 您必须为WebView 实现自己的文件选择器并检查capture 属性。很抱歉,我现在没有任何源代码可以分享,前段时间我不得不在一个项目中实现它(但我手头没有源代码)。这是由 WebChromeClient developer.android.com/reference/android/webkit/… 处理的

标签: android html android-webview


【解决方案1】:

查看repo on Github,这是一个如何在基于 Webview 的应用中上传和处理图像/视频的示例。

别忘了在你的 AndroidManifest.xml 中添加这个

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

如果您还有其他问题,请随时提问。希望能解决你的问题。

【讨论】:

    【解决方案2】:

    这里建议(FAQ 部分):https://developer.chrome.com/multidevice/webview/overview 开箱即用不支持输入类型和媒体捕获。 也许这可以帮助您自己实现它: Open camera for input type file in Webview not opening Android

    【讨论】:

      【解决方案3】:

      webView.setWebChromeClient(new WebChromeClient() {

              @Override
              public void onPermissionRequest(final PermissionRequest request) {
                  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                      request.grant(request.getResources());
                  }
              }
      
          });
      

      【讨论】:

        猜你喜欢
        • 2017-05-24
        • 2022-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-23
        • 2016-07-22
        • 2011-08-13
        • 2022-01-16
        相关资源
        最近更新 更多