在Android webview中访问相机功能?

时间:2015-07-16 18:20:59

标签: android webview camera android-webview android-camera

我正在构建一个Native-Android / WebView-App,其代码托管在远程服务器上(使用HTML和Javascript)。

Web App具有通过HTML表单启动手机摄像头的功能,输入请求:

<form action="#" method="post" enctype="multipart/form-data" >
<input name="image" type="file" accept="image/*" capture/>
</form>

此功能在标准Android Web浏览器中运行良好,但在Native App WebView浏览器中无法运行。

我在Native应用程序清单中启用了以下权限,但仍无法启动相机:

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />

如果无法使用此功能,我会接受能够访问相机胶卷,以便用户只需选择他们已经拍摄的照片,但我宁愿像在标准网络浏览器中那样启动相机。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

使用Javascript界面​​启动相机。

或者

您可以使用cordova框架。

答案 1 :(得分:0)

从Webview访问Camera时,它会请求权限,我们可以通过覆盖onPermissionRequest来授予它们。另外,请务必注意运行时权限。

webView.setWebChromeClient(new WebChromeClient() {
        @Override
        public void onPermissionRequest(PermissionRequest request) {
            request.grant(request.getResources());
        }
    });

此外,请确保禁用此属性

webSettings.setMediaPlaybackRequiresUserGesture(false);