答案1
不,按照现在的 Windows 编程,你不能。
问题是,你的问题存在一个基本的误解。你在 Android 上看到的对话框是由操作系统提供,而不是由浏览器提供。您可以在 Android 上使用不同的浏览器,您将获得相同的对话框。此外,按下“相机”,手机的相机应用程序将打开(该应用程序在任何手机上都不同,具体取决于您的硬件和 OEM),以便您可以拍照,Android 操作系统会将这张照片直接传递给浏览器。这就是安卓系统编程让你能够做到这一点的方式。事实上,在各种情况下,您都会得到类似的对话框,并且可以选择多种操作,例如从任何应用程序共享内容时,或者将文件附加到电子邮件时。
视窗,另一方面,总是向你展示一个探索者对话框。句号。这是一种不同的方法,它贯穿整个操作系统,与您正在使用的应用程序无关。如果您想将附件发送到电子邮件,也会发生同样的事情:再次出现资源管理器对话框。
这是无法通过浏览器插件来改变这一点。html<input>
标签总是会要求用户执行操作,出于安全原因,此类操作由操作系统处理:浏览器本身无权访问您的个人文件。您作为用户必须“告诉”操作系统:“请将我的这个私人文件交给浏览器”。即使在 Android 中,也会发生同样的事情:您作为用户告诉操作系统:“让我们使用相机来做这件事”。Chrome 浏览器只会接收操作系统传递给它的文件。
浏览器插件绝不允许劫持这样的操作,因为这将是一个重大的安全问题。
因此,(除了有人编写了丑陋的黑客程序)目前,这在 Windows 中是不可能的。然而,随着操作系统不断适应各种使用场景,可能某一天 - 由微软自行决定 - 在 Windows 11 中添加这样的功能。
答案2
您所要求的内容已包含在 HTML 媒体捕获标准 从 2018 年开始。
该标准在 此链接,甚至有一个似乎指向 Apple 桌面的演示图像:
新标准是<input>
PC上标签的演变,目前仅用于上传文件。
新的 HTML<input>
标签可以选择特定类型的文件,也可以从匹配的设备捕获数据。这是通过添加
HTML 属性
在<input>
标签上。
这里有一个有用的属性 捕获:
捕获属性指定(可选)应捕获新文件,以及应使用哪个设备来捕获由接受属性。
这 接受属性定义为:
该
accept
属性以逗号分隔的一个或多个文件类型的列表作为其值,或者唯一文件类型说明符,描述允许哪些文件类型。
以下是使用这些属性的 HTML 代码示例:
<p>
<label for="soundFile">What does your voice sound like?:</label>
<input type="file" id="soundFile" capture="user" accept="audio/*">
</p>
<p>
<label for="videoFile">Upload a video:</label>
<input type="file" id="videoFile" capture="environment" accept="video/*">
</p>
<p>
<label for="imageFile">Upload a photo of yourself:</label>
<input type="file" id="imageFile" capture="user" accept="image/*">
</p>
如果 HTML 文件不使用这些属性,那么它所能做的就是从磁盘中选择一个文件,例如由相机应用程序预先创建的文件。
这些标签将让您记录 Chrome 何时正确实现它们。不幸的是,目前它们无法在桌面上运行。我已经在 Android Chrome 上运行了,我希望它出现在桌面上只是时间问题。
目前,媒体捕获需要大量的 JavaScript,如下图所示 例子。
您需要等待 Chrome 开发人员将它们实现到桌面版 - 我们无法做到这一点。
答案3
如果我理解正确的话,你的问题是“如何在桌面版 Chrome 上获取选择操作 UI?”,
我对 SuperUser 还很陌生,但我认为您可以使用以下方法实现它:
- 创建一个扩展以使该功能在加载的页面上保持运行。
- 如果
<input>
单击,则运行 UI 函数,然后运行主函数(创建方法如下)
对于用户界面:
- 您已经使用 JavaScript 编写了代码,您可以添加选项:“拍照”、“从文件中浏览”。
拍照并直接传递给输入:
- 您必须编写一个 JavaScript 函数来与网络摄像头进行交互,这只有在用户授予权限时才有可能,然后单击照片,将其保存到
localstorage
,然后访问localstorage
并将该数据作为输入。
请参阅以下链接以获取帮助: