如何在iOS快捷指令中实现NFC触发带标签ID的POST请求至Node-RED服务器?
实现iPhone扫描NFC触发向Node-RED发送POST请求的方案
一、iPhone端:用「快捷指令」搭建自动化流程
新建快捷指令
打开「快捷指令」APP,点右上角「+」新建。依次添加以下动作:- 「读取NFC」:开启「在“快捷指令中心”显示」,方便触发。
- 「获取NFC标签的ID」:自动提取标签唯一ID字符串。
- 「发送HTTP请求」:
- 请求方法选「POST」,URL填你的Node-RED本地服务器地址(比如
http://192.168.x.x:1880/nfc-trigger,替换成实际局域网IP和自定义路径)。 - 请求体选「JSON」,输入格式:
这里的{ "nfcId": "{{NFC标签的ID}}" }{{NFC标签的ID}}直接从快捷指令的变量列表中选择插入即可。
最后保存快捷指令,命名比如「NFC触发Node-RED」。
- 请求方法选「POST」,URL填你的Node-RED本地服务器地址(比如
设置自动触发(可选)
打开iPhone「设置」-「快捷指令」-「自动化」,选「创建个人自动化」→「NFC」,扫描目标NFC标签完成关联。下一步添加刚才创建的快捷指令,关闭「运行前询问」,保存配置后,扫描标签就会自动执行流程。
二、Node-RED端:配置POST接收节点
搭建处理流程
- 拖拽「HTTP输入」节点到画布:设置方法为「POST」,路径填和iPhone端一致的
/nfc-trigger。 - 拖拽「函数」节点连接到HTTP输入节点,写入处理逻辑示例:
// 提取NFC ID const nfcId = msg.payload.nfcId; // 根据ID执行对应操作 switch(nfcId) { case "标签A的ID字符串": msg.payload = "执行设备开启操作"; break; case "标签B的ID字符串": msg.payload = "执行记录日志操作"; break; default: msg.payload = "未匹配到标签操作"; } return msg; - 拖拽「HTTP响应」节点连接到函数节点:设置状态码为「200 OK」,响应内容可自定义(比如
{"status":"success"})。 - 可添加「调试」节点,方便查看接收到的NFC ID,验证流程是否正常。
- 拖拽「HTTP输入」节点到画布:设置方法为「POST」,路径填和iPhone端一致的
测试验证
部署Node-RED流程,用iPhone扫描NFC标签,查看Node-RED调试面板是否收到正确ID,同时确认快捷指令执行状态为成功。
三、NFC标签准备注意事项
- 无需提前给标签预编程URL,我们是通过快捷指令主动读取标签ID,而非依赖标签自带跳转。
- 确保标签为可读写类型(普通NFC标签基本都支持),扫描时iPhone能正常识别标签。
四、常见问题排查
- POST请求失败:检查iPhone和Node-RED服务器是否在同一局域网,IP地址、节点路径是否匹配,Node-RED的1880端口是否允许局域网访问。
- NFC ID读取失败:检查标签是否损坏,或快捷指令中是否正确添加「获取NFC标签的ID」动作。
内容的提问来源于stack exchange,提问作者Jason O
相关产品推荐
相关产品推荐

