如何在android webview中打开相机?
Posted
技术标签:
【中文标题】如何在android webview中打开相机?【英文标题】:How to open camera in 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/… 处理的
【参考方案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());
);
【讨论】:
以上是关于如何在android webview中打开相机?的主要内容,如果未能解决你的问题,请参考以下文章