HTML 输入类型=“文件”无法拉起 Pixel / android 14 组合的相机

问题描述 投票:0回答:1

我将其发布在 GitHub 的 React-native-webview 讨论线程中,以防他们需要添加支持,但想看看是否有人有任何想法:

免责声明:我是一名 Web 开发人员,而不是 Android 开发人员,所以我对 Android 的所有知识充其量都是肤浅的。

我的团队注意到,我们的带有 React Native WebView 层的 PWA 应用程序似乎只在运行 Android 14 的 Pixel 用户(至少 6 和 8)的基于元素的相机时遇到问题。其他运行 13 及以下版本的 Pixel 用户。

有谁知道这种方法在 Pixel / android 14 组合上尤其失败的原因吗?我已经看到 14 的 SAF 破解了一些关于访问手机文件的线程,相机将使用 html input type="file" 元素来考虑这些文件,但即使是这样,我也不确定可以做什么我们这边完成了。任何见解将不胜感激!

请注意,我们使用 capture('') 强制打开相机并拒绝照片文件选择器。

handlePhotoChanges(e)} /> 在handlePhotoChanges中有一行inputFileRef.current.click(),它会触发但无法打开相机。

HTML 输入文件元素文档:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file

我们已将问题范围缩小到运行 Android 14 的 Pixel 用户,但仍在研究 Pixel 和 Android 14 的哪些特殊之处可能导致此问题。

android pixel html-input react-native-webview android-14
1个回答
0
投票

我也面临着同样的问题。不仅发生在 Google Pixel 手机上,还发生在其他型号(例如三星 Galaxy 手机)上。

我已将范围缩小到 Android 14 和 Chrome。使用此组合

<input type="file"/>
不会打开相机,它只允许从图库中拾取图像。

当使用其他浏览器(例如 Android 版 Firefox)时,相机会按预期打开,并且还会显示从图库中选择现有图像的选项。

正如您所指出的,添加

capture
属性将在 Chrome 中打开相机,但不允许用户选择现有图像。

我在 Chrome 论坛中发现了类似的问题:问题

这可能是 Chrome 最近的一个错误。如果我找到更多信息,我会发布另一个答案。

© www.soinside.com 2019 - 2024. All rights reserved.