哪些硬件无法被基于网络的应用程序访问?

哪些硬件无法被基于网络的应用程序访问?

每个人都说混合应用比基于 Web 的应用更好,因为例如基于 Web 的应用很难访问手机硬件。但 HTML5 应用似乎可以轻松访问相机、文件系统、GPS 等。所以我真的很想知道基于 Web 的应用无法访问哪些硬件?

答案1

不可能列出所有无法通过网页访问的设备,因为可能存在的设备数量是无限的。你只能列出网页使用权。

我还猜想您问的不只是硬件,因为例如文件系统不是硬件(顺便说一句,网页无法访问它)。我还将列出其他看似相关且可用于网页的内容。

以下是网页的不完整列表做:

  • 使用摄像头和麦克风
  • 检查您的地理位置
  • 将文件存储在私有、独立的存储中
  • 读取触摸屏事件
  • 播放声音和视频(支持有限的格式)
  • 运行沙盒进程(Web Workers)并与其通信
  • 使用 GPU 加速图形
  • 读取您明确选择的文件
  • 与明确允许这些连接的其他网页进行通信

以下是网页的不完整列表不能做:

  • 从文件系统读取/写入任意文件
  • 列出文件系统目录
  • 读取明确选择的文件的路径(理论上可行,但实际上被浏览器阻止)
  • 访问硬盘/存储设备(即读取原始数据、设置分区等)
  • 通过 HTTP(S) 与互联网上的任何站点进行通信
  • 通过任意协议与互联网上任意服务器通信(但HTTP连接可以通过web套接字切换到任意协议)
  • 枚举屏幕
  • 确定连接的屏幕类型及其参数(分辨率等)
  • 在屏幕上的任意位置绘图(仅限于 Web 浏览器的窗口)
  • 访问 GPU(即使用其所有功能,包括 GPGPU)
  • 与本机进程交互
  • 与操作系统交互
  • 枚举连接的设备
  • 访问打印机(浏览器提供有限的打印支持)

相关内容