我正在构建一个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" />
如果无法使用此功能,我会接受能够访问相机胶卷,以便用户只需选择他们已经拍摄的照片,但我宁愿像在标准网络浏览器中那样启动相机。
有人可以帮忙吗?
答案 0 :(得分:0)
答案 1 :(得分:0)
从Webview访问Camera时,它会请求权限,我们可以通过覆盖onPermissionRequest来授予它们。另外,请务必注意运行时权限。
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onPermissionRequest(PermissionRequest request) {
request.grant(request.getResources());
}
});
此外,请确保禁用此属性
webSettings.setMediaPlaybackRequiresUserGesture(false);