如何在Android WebView中打开摄像头?

3

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

我已经编写了以下代码来选择图片:

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

在Chrome浏览器中,此功能能够正常工作并打开相机以拍摄照片。但是,在Webview内调用相同的页面时,会要求从相机、图库和类似应用中选择。


1
你需要为 WebView 实现自己的文件选择器,并检查 capture 属性。很抱歉,我现在没有任何源代码可以分享,因为我之前在一个项目中实现了它(但是我手头没有源代码)。这由 WebChromeClient 处理。https://developer.android.com/reference/android/webkit/WebChromeClient.html - Xavier Rubio Jansana
3个回答

3
请查看此Github存储库,它是一个演示如何在基于Webview的应用程序中上传和处理图像/视频的示例。

不要忘记在AndroidManifest.xml中添加以下内容

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

如果您还有任何问题,请随时提出。希望这可以解决您的问题。

0

0

webView.setWebChromeClient(new WebChromeClient() {

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

    });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接