技术需求:实现NFC标签每次触碰切换不同链接且隐藏全部链接
解决方案
一、核心思路:标签存唯一标识+后端动态分发链接
不在NFC标签上存储任何实际链接,只写入一个无规律的唯一字符串ID(比如UUID:3f9d4e7a-8b2c-11ed-a1eb-0242ac120002)。用户触碰标签时,你的APP读取这个ID并发送到后端服务器,后端根据预设规则(随机、加权、时间窗口等)返回不同链接。这种方式天然满足:
- 每次触碰拿到不同链接
- NFC阅读器只能读到ID,看不到任何链接
- 无需暴露可递增的计数器,后端内部处理分发逻辑
二、具体实现步骤
标签写入
- 用NFC写入工具(如NFC Tools)写入单条
text/plain类型的纯文本记录,内容为你生成的唯一UUID,不要写多记录 - 避免设置系统默认跳转的记录类型,确保你的APP能捕获读取事件
- 用NFC写入工具(如NFC Tools)写入单条
APP端处理
- 注册NFC读取权限,监听标签触碰事件
- 读取标签上的UUID,通过HTTP请求发送到后端接口
- 接收后端返回的链接,直接在APP内打开或跳转浏览器
后端分发逻辑
- 数据库维护每个UUID对应的链接池、分发规则:
- 链接池存一组无规律的目标链接,比如
["https://example.com/abc", "https://example.com/xyz", "https://example.com/123"] - 分发规则可选:随机选择、加权随机(给不同链接设权重)、按时间段切换等
- 链接池存一组无规律的目标链接,比如
- 后端内部记录触碰次数但不暴露,返回的链接完全独立无规律,规避计数器方案的风险
- 数据库维护每个UUID对应的链接池、分发规则:
三、为什么放弃多记录方案?
系统默认NFC触碰只会触发第一条记录解析(如跳转浏览器),且多记录会被阅读器完整读取,完全不符合你的需求,因此必须转向后端联动的思路
内容的提问来源于stack exchange,提问作者Ian
相关产品推荐
相关产品推荐

