Mobile wallpaper 1Mobile wallpaper 2Mobile wallpaper 3Mobile wallpaper 4Mobile wallpaper 5Mobile wallpaper 6
1048 字
5 分钟
站点实验室功能介绍:一些轻量小工具的集合
2026-02-17
统计加载中...

实验室(Lab)是我放一些“随手可用的小工具”的地方:不追求大而全,更像一个浏览器能力的试验田——想到什么就塞进来,方便自己也方便路过的你。

入口在顶部导航:工具 -> 实验室,对应页面路径:/tools/lab/


为什么要做“实验室”?#

很多时候我只想快速完成一件小事:

  • 临时照明:手机在黑暗处找东西,直接开手电筒。
  • 确认定位信息:需要当前经纬度/精度,复制给地图或记录。
  • 临时拍张照:不想打开系统相机一堆流程,就在网页里快速拍一张并下载。
  • 检查网络出口 IP:顺手看看 IPv4/IPv6 是否可用。

这些能力大多依赖浏览器原生 API,实现起来不复杂,但单独做成页面就会很“碎”。所以我把它们统一收进“实验室”。


实验室里目前有什么?#

页面由 src/pages/tools/lab.astro 组合多个 Svelte 小组件构成。

1) 手电筒(Torch)#

  • 功能:尝试调用摄像头轨道的 torch 能力,实现“开/关手电筒”。
  • 使用方式
    • 点击“初始化/授权”
    • 若设备支持,会显示 torch:支持,此时可点击“开启/关闭”
    • 用完建议点“释放资源”
  • 注意
    • 需要浏览器支持 getUserMedia,并且必须在 HTTPS 或 localhost 环境下。
    • 并非所有设备/浏览器都支持 torch,即使能打开摄像头也可能不支持开灯。

对应实现:src/components/lab/FlashlightLab.svelte

2) 定位(Geolocation)#

  • 功能:获取一次性的当前位置,包括经纬度、精度、海拔、速度、朝向、时间戳等。
  • 使用方式:点击“获取定位”,等待结果。
  • 注意
    • 同样要求 HTTPS 或 localhost
    • 若拒绝权限/设备无定位/超时,会显示对应错误提示。

对应实现:src/components/lab/GeolocationLab.svelte

3) 拍照(Camera Snapshot)#

  • 功能:调用摄像头预览画面,并把当前帧截图为 jpeg,支持直接下载。
  • 使用方式
    • 选择“前置/后置”摄像头
    • 点击“初始化/授权”
    • 点击“拍照”生成图片
    • 点击“下载”保存到本地
  • 注意
    • 需要 HTTPS 或 localhost
    • 用完建议“释放资源”,避免摄像头占用。

对应实现:src/components/lab/PhotoLab.svelte

4) IP(IPv4 / IPv6)#

  • 功能:并行请求多个公共接口,取第一个符合格式校验的结果,分别显示 IPv4 与 IPv6。
  • 使用方式:点击“获取”。
  • 注意
    • 某些网络环境可能没有 IPv6 出口,因此 IPv6 获取失败是正常情况。
    • 这个功能依赖公网接口可用性,若被拦截或超时也会提示失败。

对应实现:src/components/lab/IpLab.svelte,辅助工具:src/utils/lab-utils.ts


一些设计上的小细节#

  • 统一卡片样式:每个工具都用 LabCard 做外壳,标题清晰、状态和提示信息统一展示。
  • 尽量可自解释:按钮命名偏“操作导向”(初始化/授权、获取、清空、释放资源),不需要额外看说明也能上手。
  • 安全上下文检查:需要权限/敏感 API 的功能,会先检测是否处于安全上下文(HTTPS/localhost),避免用户“点了没反应”。

常见问题(FAQ)#

Q1:为什么我在本地打开 http://ip:port 不能用摄像头/定位?#

因为很多浏览器 API 只允许在 安全上下文 使用:

  • 可以https://你的域名/...http://localhost/...
  • 通常不行http://局域网IP/...

Q2:为什么手电筒显示“不支持”?#

torch 是摄像头轨道的能力,不是所有手机/浏览器都提供。就算有闪光灯,也不一定开放给 Web。

Q3:IPv6 获取失败是不是 bug?#

不一定。常见原因:

  • 你的网络没有 IPv6 出口
  • 公网接口被 DNS/防火墙拦截
  • 接口返回了 IPv4(会被格式校验过滤掉)

后续计划#

实验室会持续更新:有趣、实用、但不值得单开大模块的东西,我都会优先放进这里。

如果你想要我加某个小工具(例如:剪贴板小工具、UA/屏幕信息、时间戳转换、二维码生成等),欢迎留言。

站点实验室功能介绍:一些轻量小工具的集合
https://sylviz.cn/posts/34/
作者
kiwi
发布于
2026-02-17
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

封面
Sample Song
Sample Artist
封面
Sample Song
Sample Artist
0:00 / 0:00