React:在 Messenger webview 中捕获图像

React: Capture image in messenger webview

我有一个带有图像捕获标签的小型 React 应用程序(仅适用于移动设备),用于仅单击来自相机的图像(阻止文件选择器对话框)

<input type="file" accept="image/*" capture="camera" onChange={this.handleUploadImage} />

我正在使用它从 android 和 ios 浏览器捕获图像。

这个标签在 chrome android 和 safari ios 中工作正常,但是当它在 facebook Messenger 的网络视图中打开时,它不会打开相机,而是打开android.

中的文件选择器对话框

那么有什么方法可以在 Facebook Messenger 的网络视图中打开相机并阻止访问文件选择器对话框

如有任何帮助,我们将不胜感激

据我所知,您正在尝试访问输入类型为 "file" 的摄像头。虽然它在浏览器中运行良好,但应用程序的任何 webview 都将其视为文件 input/upload.

的标签

你需要的是创建一个模块,即使在 webview 中也允许访问相机,并在你想要的地方使用它。可以使用 getUserMedia() api 创建摄像头模块,也可以查看 webrtc and webkit

请检查不同浏览器对 getUserMedia() api 的支持,以便更好地理解。作为 it dont work in chrome/firefox for ios 截至目前。

您还可以使用可用的开源依赖项,其中一些是:

  1. react html 5 camera
  2. react-camera