GitHub
加载中...
加载GitHub贡献图...
✨ 欢迎来到桃源笔记
这里是记录生活、分享技术、探索世界的小天地。愿你在忙碌的生活中,也能找到属于自己的那片桃源~
标签
安全 宝库 笔记 编程实践 博客 触摸事件 低碳生活 调试 都市减压 独处 个人成长 个性化教育 更新日志 工具 工业4.0 工作生活平衡 公告 构建 孤独 观察 航天技术 合成生物学 环保 火星任务 基因编辑 计算器 技能 技术创新 加密货币 焦虑 教师生涯 教育 开源 科技趋势 科技与生活 可持续生活 量子计算 灵活办公 零浪费 浏览器API 留白艺术 慢生活哲学 命令行工具 内心成长 评论系统 前端 区块链 去中心化 人工智能 人文 人性思考 商业航天 商业应用 生活 生活方式 生活平衡 生活哲学 生态友好 生物技术 师德楷模 时间管理 实验室 实用方法 书单 数字化 数字极简主义 数字经济 数字孪生 数字伦理 数字转型 随笔 太空探索 太空殖民 体验优化 天津宝坻 推荐 未来工作 未来经济 未来科技 未来学习 未来展望 物联网 咸鱼之王 乡村教育 小工具 效率 效率工具 协议 心理健康 心理健康工具 心灵治愈 性能优化 虚拟现实 医疗创新 移动端 游戏 语文教学 元宇宙 远程工作 远程医疗 阅读 增强现实 正念 知识管理 智慧生活 智能制造 专注力 自我关怀 自我疗愈 自我探索 自我提升 Astro Canvas GitHub Obsidian Pagefind PKM Python RSS Rust Svelte Umami Web3
1048 字
5 分钟
站点实验室功能介绍:一些轻量小工具的集合
实验室(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/屏幕信息、时间戳转换、二维码生成等),欢迎留言。
部分信息可能已经过时




