每个人都说混合应用比基于 Web 的应用更好,因为例如基于 Web 的应用很难访问手机硬件。但 HTML5 应用似乎可以轻松访问相机、文件系统、GPS 等。所以我真的很想知道基于 Web 的应用无法访问哪些硬件?
答案1
不可能列出所有无法通过网页访问的设备,因为可能存在的设备数量是无限的。你只能列出网页能使用权。
我还猜想您问的不只是硬件,因为例如文件系统不是硬件(顺便说一句,网页无法访问它)。我还将列出其他看似相关且可用于网页的内容。
以下是网页的不完整列表能做:
- 使用摄像头和麦克风
- 检查您的地理位置
- 将文件存储在私有、独立的存储中
- 读取触摸屏事件
- 播放声音和视频(支持有限的格式)
- 运行沙盒进程(Web Workers)并与其通信
- 使用 GPU 加速图形
- 读取您明确选择的文件
- 与明确允许这些连接的其他网页进行通信
以下是网页的不完整列表不能做:
- 从文件系统读取/写入任意文件
- 列出文件系统目录
- 读取明确选择的文件的路径(理论上可行,但实际上被浏览器阻止)
- 访问硬盘/存储设备(即读取原始数据、设置分区等)
- 通过 HTTP(S) 与互联网上的任何站点进行通信
- 通过任意协议与互联网上任意服务器通信(但HTTP连接可以通过web套接字切换到任意协议)
- 枚举屏幕
- 确定连接的屏幕类型及其参数(分辨率等)
- 在屏幕上的任意位置绘图(仅限于 Web 浏览器的窗口)
- 访问 GPU(即使用其所有功能,包括 GPGPU)
- 与本机进程交互
- 与操作系统交互
- 枚举连接的设备
- 访问打印机(浏览器提供有限的打印支持)