我有一个网页在Android的WebView中打开。要求是在点击文件选择器时直接启动相机。
我已经编写了以下代码来选择图片:
<input id="files" type="file" name="images[]" multiple accept="image/*" capture="camera"/>
在Chrome浏览器中,此功能能够正常工作并打开相机以拍摄照片。但是,在Webview内调用相同的页面时,会要求从相机、图库和类似应用中选择。
我有一个网页在Android的WebView中打开。要求是在点击文件选择器时直接启动相机。
我已经编写了以下代码来选择图片:
<input id="files" type="file" name="images[]" multiple accept="image/*" capture="camera"/>
在Chrome浏览器中,此功能能够正常工作并打开相机以拍摄照片。但是,在Webview内调用相同的页面时,会要求从相机、图库和类似应用中选择。
不要忘记在AndroidManifest.xml中添加以下内容
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
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());
}
}
});
WebView
实现自己的文件选择器,并检查capture
属性。很抱歉,我现在没有任何源代码可以分享,因为我之前在一个项目中实现了它(但是我手头没有源代码)。这由WebChromeClient
处理。https://developer.android.com/reference/android/webkit/WebChromeClient.html - Xavier Rubio Jansana