新闻详情

新闻详情

首页 / 资讯中心 / 详情

iPhone 一键触发:用 n8n Webhook 打造跨系统自动化链路

发布时间:2026/10/2 9:04:05来源:尧图网络
iPhone 一键触发:用 n8n Webhook 打造跨系统自动化链路
把 iPhone 变成自动化物理外挂这句话最开始是我在折腾 n8n Webhook 时冒出的一句玩笑。后来又折腾了小半年我发现它并不是夸张——手机按一下、说句话、刷张 NFC 卡就能让公司打卡系统自动提交、让家里的智能设备联动、让消息和日报按固定模板归档。整个过程里iPhone 只负责发信号真正干活的是 n8n而信号进出 n8n 的那扇门就是 Webhook。如果你对自动化有点基础这套东西的定位可以一句话说清用 iOS 快捷指令当遥控器用 n8n Webhook 当接口用 n8n 的节点编排当后台执行器。它适合谁适合手里有 iPhone、又不想在 App Store 里装一堆自动化神器的人适合已经会用拖拽式工作流、但对 iOS 生态不熟的人也适合想快速验证手机触发 → 服务器干活 → 手机收结果这套思路的产品经理和独立开发者。不要被物理外挂这四个字吓到它本质上是一套合规、私有、完全由你自己掌控的自动化方案。1. n8n Webhook 到底能给 iPhone 开什么挂1.1 先说清楚这不是玄学是一条数据链路很多朋友一听到iPhone 自动化第一反应是 iOS 自带的快捷指令自动化或者去装各种花里胡哨的捷径库。那些方案的问题在于快捷指令能干的事基本局限在 iPhone 本地能访问的服务里一旦涉及到公司 OA、自己的服务器、家里的 NAS、自建的数据库就立刻抓瞎。n8n Webhook 解决的正是这个跨系统的痛点。n8n 是一个开源的工作流自动化引擎说人话就是自托管的 Zapier/IFTTT。它用可视化节点把不同服务串起来节点之间可以传数据、做判断、调接口。而 Webhook 是它对外暴露的入口只要往指定 URL 扔一个 HTTP 请求n8n 就会像收到号令一样把后续一连串节点按编排顺序跑起来。为什么这个组合对 iPhone 有天然优势因为 iPhone 是个相对封闭的生态想让手机主动和外界通信最稳定、最通用的路径就是 HTTP 请求。iOS 自带快捷指令 App 内置了获取URL内容这个动作能发 GET/POST 请求还能把响应读回来。于是链路闭合了iPhone 发请求 → n8n Webhook 接住 → n8n 调度后续动作 → 动作结果再通过响应返回手机。提示这套链路的真正价值不是远程开个灯而是把手机上无法直接访问的私有系统公司 OA、NAS、自建脚本、数据库通过 n8n 安全地变成一个可被快捷指令调用的 API。自动化程度能做多深完全取决于你在 n8n 里编排了多少节点。1.2 为什么是 n8n而不是 Dify、扣子、FastGPT现在和 n8n 同台竞技的工具不少扣子、dify、fastgpt、n8n这几个名字经常被放在一起。我的理解是它们根本不在一个赛道上。简单画个对比工具核心定位最适合干的事和 iPhone 联动的便利程度n8n通用工作流自动化跨系统数据流转、定时任务、Webhook 接入最顺手Webhook 是原生节点DifyLLM 应用开发平台对话机器人、RAG 知识库、Agent有 API但链路偏重FastGPT知识库问答私有知识库 对话有 API偏问答场景扣子CozeBot 开发平台各类 Bot 应用有 API生态偏国内平台如果你只是想要一个能从 iPhone 一键触发、把多步任务串起来、部署在自己服务器上的东西n8n 是痛点最少的那个。Webhook 节点在 n8n 里是一等公民创建后自动生成测试和生产两套 URLn8n 本身是 Node.js 应用Docker 一条命令就能起界面可视化拖拽非程序员也能看懂流程。当然 n8n 也有学习曲线。节点一多数据在各节点怎么传递容易犯晕表达式语法比如{{ $json.body.xxx }}对于没写过代码的人需要适应几天。但只要目标是把它当作 iPhone 的外挂引擎其实只需要掌握 Webhook 节点、Set 节点、IF 节点和 Respond to Webhook 节点就能覆盖大部分玩法。这也是我推荐用它而不是一上来就上 AI 平台的原因先跑通业务链路再考虑智能。1.3 Webhook 在这个链路里扮演的角色传统自动化有一个典型做法叫定时轮询每隔几分钟去检查一次有没有新数据有就处理没有就继续等。Webhook 走的是完全相反的思路——事件推送事件发生时主动把数据送到指定 URL。做个生活类比轮询像每五分钟跑去门口看外卖到没到Webhook 则是外卖员到了直接按门铃。门铃一响你再安排接单、摆桌、开吃这就是Webhook 节点触发 → 后续动作执行的过程。iPhone 侧最典型的触发源有这几类按钮触发桌面图标一点立刻执行语音触发Siri 唤起快捷指令自动化触发到达/离开某个位置、连接特定 WiFi、扫描 NFC 标签、每天定时等。这些触发源的共同点是最终都会被转化为一个 URL 请求落到 n8n 的 Webhook 上。所以我常跟朋友说学习这套东西不需要先弄懂整个 n8n只需要先理解Webhook 就是 iPhone 和 n8n 之间的门铃。门铃后面接多少活、怎么干那才是 n8n 大展身手的地方。2. 核心链路拆解iPhone 到 n8n 的完整数据流2.1 iOS 侧快捷指令自带 HTTP 请求能力iOS 快捷指令 App 里有个动作叫获取URL内容Get Contents of URL它支持 HTTP 方法GET、POST、PUT、DELETE 等、自定义请求头、请求体文本/表单/JSON并且能拿到响应内容作为后续步骤的输入。这意味着iPhone 本质上就是一把可以向任意 HTTPS 端点发请求的无线遥控器。实际配置时我通常会在快捷指令里这样组参数先放一个文本动作里面写 JSON 结构例如{task:daily_report,content:今日完成了重构和联调}再加获取URL内容URL 填 n8n Webhook 地址方法选 POST请求体选 JSON在标题头里加Authorization: Bearer 你的随机串对应 n8n 侧的 Header Auth。一个关键细节如果 JSON 里需要动态值比如当前日期、定位、剪贴板内容直接在文本动作里插入对应变量即可iOS 会在运行时自动替换。这比在电脑上拼字符串还顺手。另一个容易被忽略的点快捷指令的获取URL内容会等待网络请求完成并拿到返回值所以你可以把响应内容继续传给显示通知、判断分支甚至下一个请求。这就是n8n 处理完再回传结果给 iPhone能实现的基础也是它比普通按键发请求高级的地方。2.2 n8n 侧Webhook 节点的两种 URL 与配置在 n8n 画布里拖一个 Webhook 节点需要关注几个配置项。HTTP Method选择 POST。日常我基本都用 POSTGET 虽然方便浏览器直接测试但没法塞 JSON 请求体URL 一长串也不利于安全和语义。Path自定义 URL 路径比如phone-trigger。Response Mode默认 On Received 是收到即返回固定文本如果想要动态回传需要把 Response Mode 改成 Response Node并在流程末尾放一个Respond to Webhook节点。Authentication 类型None、Basic Auth、Header Auth、JWT。最推荐 Header Auth快捷指令里加一个 Header 字段即可简单有效。创建并保存后n8n 会生成两个地址Test URLhttps://你的域名/webhook-test/phone-triggerProduction URLhttps://你的域名/webhook/phone-trigger注意Test URL 只在 n8n 编辑器处于手动执行流程状态时可用真正给 iPhone 长期用必须切换到 Production 模式使用 Production URL。这是新手最容易踩的坑——配置好后手机一直 404十有八九是执行模式没切。2.3 数据格式、响应与鉴权怎么设计当 iPhone 发出 POST 请求后n8n Webhook 节点会把请求内容包装成一个对象后续节点用{{ $json.body }}访问。比如你的快捷指令发送{ task: daily_report, content: 今日完成了两项需求 }那么在 n8n 后续任何节点里{{ $json.body.task }}的值就是daily_report{{ $json.body.content }}就是正文。这个表达式语法会贯穿整个流程一定要记牢。响应环节推荐在流程末尾放一个Respond to Webhook节点。这个节点可以组装返回给 iPhone 的 JSON例如{ status: ok, received: {{ $json.body.content }}, time: {{ Date.now() }} }iPhone 端就能在获取URL内容的返回结果里读到这段 JSON再继续做显示通知、播放提示音等动作。一整套请求-响应闭环就完成了。鉴权方面最低限度也要开 Header Auth。n8n 里选择 Header Auth 后需要填一个 Header 名和值比如 Header 名authorization值Bearer ZG-2024-iphoneiPhone 快捷指令里加上同样的请求头。这不是什么高深的安全手段但足以过滤掉外部扫描器的乱调用。2.4 一次完整的请求-响应闭环要经历什么把上面的内容串起来一次典型的流程是这样的iPhone 快捷指令被触发语音、按钮、NFC、自动化规则。快捷指令组装 JSON通过获取URL内容发 POST 到 n8n Production URL。n8n Webhook 节点接收数据触发流程运行。流程里可以做各种事写数据库、调外部 API、发邮件、处理文件、调用 AI 模型等。流程到达Respond to Webhook节点把结果返回给 iPhone。iPhone 拿到结果显示通知、播放声音或者继续执行下一个动作。这套闭环是 n8n iPhone 组合最有魅力的地方。你不需要在手机侧安装任何额外客户端不需要越狱也不用后台保活。一个快捷指令本身就是App一个 Webhook 就是后台服务。3. 实操搭建第一个能跑的物理外挂3.1 部署 n8n用什么姿势最省心在动手配 iPhone 之前先把 n8n 跑起来。最省心的方式是 Dockerdocker run -d \ --name n8n \ -p 5678:5678 \ -e GENERIC_TIMEZONEAsia/Shanghai \ -e TZAsia/Shanghai \ -v n8n_data:/home/node/.n8n \ n8nio/n8n启动后访问http://服务器IP:5678完成账号初始化即可。这里要强调部署位置的选择。如果你有一台云服务器阿里云、腾讯云、华为云都行建议直接部署在云上然后把域名解析绑上去通过反向代理启用 HTTPS。手机快捷指令对自签名证书的容忍度很低iOS 的 ATS 策略也倾向于强制 HTTPS这一步省不了。如果你想把 n8n 跑在家里 NAS 或旧电脑上那 Webhook 必须能被外网访问到。这个场景请优先考虑公网可达这个前提有公网 IP 就做端口映射没有就用已有的公网域名服务不要为了省事走那些临时通道稳定性没有保障安全上也说不清。我的个人建议是如果只是个人折腾直接花几十块钱一年买个最便宜的云服务器跑 n8n 绰绰有余。3.2 配置 Webhook 触发节点注意执行模式进入 n8n 工作流画布后按以下步骤配置添加一个 Webhook 节点。HTTP Method 选 POST。Path 填phone-trigger。打开 Authentication选 Header AuthHeader Name 填authorizationValue 填一串随机字符串比如Bearer iphone-alex-2024。建议用密码生成器生成 32 位以上随机串。Response Mode 选 Response Node。保存节点然后点击执行工作流按钮让 n8n 生成 Test URL 并把 Webhook 节点置于监听状态。接下来给流程加一个Respond to Webhook节点。如果你只想验证通达性可以把工作流设计成最简单的Webhook → Respond to Webhook。在 Respond to Webhook 节点的响应体 JSON 里直接返回一段文本{ message: iPhone 触发了工作流参数为{{ $json.body.task }} }保存工作流点击右上角切换执行模式到 Production。到这里n8n 侧的门铃就装好了。3.3 iPhone 快捷指令侧三分钟拼出请求打开 iPhone 的快捷指令App新建一个快捷指令按顺序添加以下动作文本动作内容填{ task: hello, content: 这是来自 iPhone 的第一次请求 }想上变量的话可以在文本里插入当前日期、快捷指令输入等iOS 会自动替换。获取URL内容动作URLhttps://你的域名/webhook/phone-trigger方法POST请求体JSON标题头Authorization: Bearer iphone-alex-2024显示通知动作标题记为n8n 回复内容选择获取URL内容的返回值。把这个快捷指令添加到主屏幕或者设置 Siri 语音嘿 Siri触发外挂。然后点一下如果一切正常屏幕会弹出一条通知内容是 n8n 返回的 JSON。第一个物理外挂就通了。一个实操小建议第一次测试时先用固定字符串确认链路通了再逐步把变量加进去。否则 JSON 拼写错误和网络问题混在一起排错难度会直线上升。3.4 验证链路与调试技巧链路搭好后我习惯按这个顺序验证第一步在 n8n 里确认已经切到 Production 模式并保存工作流。 第二步先用电脑或手机浏览器直接模拟请求用 curl 最方便curl -X POST https://你的域名/webhook/phone-trigger \ -H Content-Type: application/json \ -H Authorization: Bearer iphone-alex-2024 \ -d {task:test,content:hello}如果 curl 能拿到正常响应说明 n8n 侧没问题问题大概率在快捷指令配置。第三步再运行 iPhone 快捷指令逐项检查 URL、方法、请求体、标题头。调试的核心工具是 n8n 的执行日志Executions。双击工作流打开执行记录可以看到每次触发的数据流Webhook 收到了什么、后续节点输出是什么、哪个节点报错了。我一直把执行日志当成iPhone 的监控摄像头手机调不通先别急着改手机先看 n8n 这边到底有没有收到请求。4. 四个实战场景把外挂落到实处4.1 一键上报日报、打卡、待办记录很多人每天要填日报、OA 打卡这种重复劳动最值得自动化。做成的效果是点一次快捷指令对着手机说一句今天完成了啥明天计划做啥n8n 把文本整理成固定格式发给企业微信/钉钉/飞书的机器人地址或者写入自己的数据库然后手机弹一条已上报通知。具体拆解一下快捷指令里用听写文本把语音转成文字拼进 JSON 的content字段n8n 里用IF节点判断content是否为空为空则返回内容不能为空不为空则用HTTP Request节点转发给目标系统最后用Respond to Webhook返回上报结果。注意不要在快捷指令里放真正的数据库密码或密钥。快捷指令内容可能被 iCloud 同步属于半公开状态。建议 iPhone 端只发业务内容鉴权信息走 n8n 的 Header Auth数据库凭据全程留在 n8n 环境变量里。4.2 语音转文字自动归档iPhone 自带的语音转文字质量不错配合 n8n 可以做一个语音笔记自动归档系统。说一段话 → 快捷指令转成文字 → POST 给 n8n → n8n 调用云笔记 API 或写入本地文件 → 返回已保存到 XXX 笔记共 N 字 → iPhone 播放提示音。如果想更进一步可以在 n8n 里加一个 AI 节点对文字做摘要和标签提取把结构化结果返回到手机。这样你的语音备忘录不再是录音文件而是一个自动化知识库入口。实际体验中这类场景最爽的是无感记录走在路上想起一个点子拿起 iPhone 说一句剩下的事全部交给 n8n。它比打开笔记 App 手动打字省力的多也比大部分付费语音笔记工具更自由——因为数据落在你自己的服务器上。4.3 NFC 与位置触发地理围栏联动iOS 快捷指令的个人自动化支持很多触发条件到达/离开某个位置、连接特定 WiFi、扫描 NFC 标签、每天固定时间、打开某个 App 等。这些触发都可以接入同一个 Webhook只需要在 JSON 里加一个trigger_type字段让 n8n 区分上下文。举个例子离开办公室 WiFi 时快捷指令自动 POST 给 n8n触发了一次离开事件n8n 里判断trigger_type是leave_office就自动把家里的空调设置为待机、往家庭群发一条路上了的消息、记录一次通勤耗时。因为不同触发对应不同动作n8n 里用 IF 节点分流即可一个 Webhook 就能撑起多个入口。NFC 场景更有物理外挂的手感买几个空白 NFC 标签贴在门上、车上、工位上手机扫一下 NFC向 n8n 发请求。返回结果可以是已登记、已开闸、已打卡。整个动作不到一秒但背后跑完了一整套流程。4.4 信息聚合每天固定时间把重要内容推回手机n8n 的定时触发节点Cron很适合做信息聚合。可以让 n8n 每小时抓取 RSS、邮件、天气、交易提醒生成一份摘要文本然后通过 HTTP 请求把摘要发给某个固定通知渠道。如果你想让通知直接出现在 iPhone 屏幕上最轻量的方式不是去配 APNs 推送那是另一个大工程而是让 n8n 把摘要写入一个固定地址iPhone 再用个人自动化每天定时比如早上 8:00运行一条快捷指令从这个地址拉取摘要用显示通知弹出。流程简单可靠不依赖第三方推送服务。这里有个很加分的小细节如果你好怀念 iPhone 当年那个经典提示音很多人都在找, 三全音资源可以在快捷指令里加一个播放声音动作把音频文件存到文件App 再选中即可。n8n 每次聚合完手机就先用这个经典音效提醒你。自动化里的一点仪式感体验提升非常明显。5. 常见问题与排错实录5.1 iPhone 请求失败先别怪网络最典型的现象是快捷指令运行到获取URL内容时报错提示无法连接或请求失败。处理顺序是先确认 n8n 服务本身是否正常运行再确认手机浏览器能不能直接打开 n8n 的网页。如果浏览器都打不开那多半是部署位置公网不可达、端口没放行或域名解析出了问题。另一种隐蔽情况是 iOS 的 ATS 限制。如果 URL 是http://或者用了自签名证书快捷指令会直接拒绝请求。解决办法只有一个给 n8n 配上有效的 HTTPS 证书。让 n8n 不暴露在公网而是通过反向代理Nginx/Caddy提供 HTTPS 访问是更稳妥的姿势。还有一点如果你给快捷指令限制了运行时询问权限可能出现请求发出但被系统拦下的情况。检查快捷指令设置里有没有打开允许运行相关的开关。5.2 Webhook 收到请求但流程报错日志怎么读要区分两类问题一类是 n8n 压根没收到请求手机就报错了另一类是 n8n 收到了但流程执行到某个节点报错。后者在手机端只能看到响应失败之类模糊提示真正的线索全在 n8n 执行日志里。最常见的报错是Cannot read properties of undefined (reading xxx)。出现这个几乎可以断定是 JSON 字段名和表达式对不上。在快捷指令里发的是{task:hello}表达式却写了{{ $json.body.tasks }}一个字母之差就会拿到undefined。排查方式打开执行日志点进 Webhook 节点看它的输出对象里到底有哪些字段再把表达式改成一致。现象最可能原因解决方向手机端 404用了 Test URLn8n 没在手动执行状态切到 Production 模式用 Production URL手机端 401/403Header Auth 没配对对比快捷指令标题头和 n8n 配置n8n 收到但后续节点报错JSON key 与表达式不一致查看执行日志核对$json.body结构响应超时流程中外部 API 太慢给 Webhook 增加超时时间或改用异步通知5.3 快捷指令变量和 JSON 解析的坑快捷指令的文本动作在插入变量到引号内部时有时会自动加转义导致生成的 JSON 不是合法 JSON。我的建议是尽量少手拼 JSON 字符串改用获取URL内容请求体里的JSON类型直接把键值对填进去iOS 会自动生成结构化数据。返回数据的解析也有讲究。获取URL内容拿到的是纯文本要先用从输入获取词典把它转成字典再用获取字典的值按 key 取值。成功解析后才能正常显示在通知里。这一步很多人卡住原因是不知道返回内容要先转字典。5.4 避免 Webhook 被乱调安全加固清单Webhook 一旦部署到公网本质上就是一个没有界面的 API 端点被扫描器盯上是迟早的事。我在实际使用中至少会做这几层防护开启 Header Auth值用 32 位以上随机字符串必须启用 HTTPS让 token 不在明文里传输在 n8n 前面套一层网关或 WAF按路径和访问频次过滤异常请求Webhook Path 不要用webhook、test这种默认路径改成难以猜到的字符串对于敏感流程可以在 Webhook 节点后用IF节点加一层二次校验比如检查来源 IP 网段或请求体里的暗号字段。这套组合不能说绝对安全但对个人自动化场景来说已经能挡掉 99% 的无差别扫描。6. 后续还能怎么玩6.1 让 Webhook 成为 iPhone 和其他系统的胶水n8n 的核心价值是胶水。iPhone 只是众多入口之一同样的 Webhook 还可以被电脑端脚本、聊天机器人、定时任务调用。我自己最常用的一个场景是自动化测试让 pytest 跑完测试套件后用一段脚本把结果 POST 给 n8n Webhookn8n 再根据测试通过率决定是否发通知到手机。这样即使人不在电脑前也能第一时间知道 CI 状态。6.2 从固定流程升级到 AI Agent当我第一次把 n8n 的 AI Agent 节点接入这套链路时感觉物理外挂的体验又上了一个台阶。快捷指令只负责把语音转成文本发过来n8n 里的大模型解析意图决定走哪条工作流再组织数据执行。你在手机上说帮我安排明天下午三点和产品过需求快捷指令把它变成文本 → n8n 的 Agent 节点识别出创建日程 发通知两个意图 → 自动调日历 API 建事件、给参与者发消息、把确认结果返回手机。固定套路升级成了能理解自然语言的智能编排。6.3 我踩过的几个坑以及一些配置心得最后分享几个实战中踩过的坑。第一个是忘了切 Production 模式纸上了半小时手机 404第二个是快捷指令里把 JSON 写错了一个引号n8n 那边直接收到一个无法解析的字符串第三个是安全做得太裸Webhook 被扫描器频繁调用日志刷得飞快。针对这些我养成了三个习惯每改一次 n8n 流程先用 curl 模拟跑一版快捷指令里能不用手写 JSON 就尽量用结构化字段所有 Webhook 一律开启 Header Auth。折腾这类自动化的核心不是工具用得多花哨而是让触发 → 处理 → 反馈这条链路足够稳定、足够可排查。真要说这套方案给我带来什么其实是省掉了大量无意义的重复操作。手机还是那台手机但每一个按钮、每一声指令、每一次到家都可能触发一条原本要花五分钟手工完成的流程。把重复交给 n8n剩下的时间拿去干点更值得的事这才是物理外挂的正确用法。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

STM32CubeMX深度配置指南:从安装到时钟树与外设驱动生成 2026/10/2 13:06:34

STM32CubeMX深度配置指南:从安装到时钟树与外设驱动生成

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
OT逆向工程实战:从固件提取到协议还原的完整路径 2026/10/2 13:06:33

OT逆向工程实战:从固件提取到协议还原的完整路径

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
知识图谱存储与检索实战:Neo4j+MinIO+Milvus三路混合检索 2026/10/2 13:06:27

知识图谱存储与检索实战:Neo4j+MinIO+Milvus三路混合检索

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
JavaScript typeof 操作符深度解析:值分类原理与企业级类型判断实践 2026/10/2 13:06:27

JavaScript typeof 操作符深度解析:值分类原理与企业级类型判断实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
GRA-LSTM负荷预测模型:解耦冷热电耦合关系的工程实践 2026/10/2 13:06:27

GRA-LSTM负荷预测模型:解耦冷热电耦合关系的工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
128x64 OLED多级菜单设计:用纯C在STM32上实现轻量级导航 2026/10/2 13:06:27

128x64 OLED多级菜单设计:用纯C在STM32上实现轻量级导航

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉