范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

浏览器支持NFC?WebNFC是什么?

  大家好,很高兴又见面了,我是" 前端进阶 ",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!
  NFC:一种无线通信技术,设备能够在不使用互联网的情况下相互通信前言
  NFC(Near Field Communications) 代表近场通信,这是一种工作频率为 13.56 MHz 的短距离无线技术,可在距离小于 10 厘米的设备之间进行通信。 NFC 通信协议和数据交换格式基于现有的射频识别 (RFID) 标准,包括 ISO/IEC 14443 和 FeliCa。 NFC 标准包括 ISO/IEC 18092和 NFC 论坛定义的标准。1.什么是无源和有源NFC设备?1.1 无源NFC设备
  包括NFC标签和其他小型发射器,它们可以向其他NFC设备发送信息,而不需要电源。但是,它们不能处理来自其他源的信息,也不能连接到其他无源设备。1.2 有源NFC设备
  能够发送和接收数据,并且可以彼此通信,也可以与无源设备通信。目前来说,智能手机是最常见的有源NFC设备,其它常见的例子还包括公交读卡器和支付终端。2.Web NFC 的用户场景?
  将设备靠近无源供电的 NFC 标签,以便读取或写入数据。
  NFC工作原理是磁感应
  NFC 的工作原理是使用磁感应,这意味着读取器(一个有源的、有源设备)会发出一个小电荷,然后产生一个磁场。 磁场为无源设备提供动力,无源设备将其转化为电脉冲来传输数据。 因此,当设备在范围内时,总是执行读取。
  点对点连接以类似的方式工作,因为设备会定期切换到所谓的启动器模式以扫描目标,然后再回到目标模式。 如果找到目标,则读取数据的方式与读取标签的方式相同。
  由于 NFC 基于现有的 RFID 标准,许多 NFC 芯片组支持读取 RFID 标签,但其中一些仅由单一供应商支持,而不是 NFC 标准的一部分。3.如何在浏览器使用NFC3.1 NDEFMessage对象
  Web NFC API 的 NDEFMessage 接口表示已从 NFC 标签读取或写入的 NDEF 消息的内容。 通过调用 NDEFMessage() 构造函数或从传递给读取事件的 NDEFReadingEvent.message 属性获取实例。const ndefReader = new NDEFReader();  // 构造函数   function read() {   // 创建一个读取单个标签然后停止轮询的函数,通过减少不需要的工作来节省电池寿命     return new Promise((resolve, reject) => {       const ctlr = new AbortController();       ctlr.signal.onabort = reject;       ndefReader.addEventListener("reading", (event) => {         ctlr.abort();         resolve(event);       }, { once: true });       ndefReader.scan({ signal: ctlr.signal }).catch((err) => reject(err));     });   }   read().then(({ serialNumber }) => {     console.log(serialNumber);   });3.2 NDEFReader对象
  Web NFC API 的 NDEFReader 接口用于从兼容的 NFC 设备读取和写入数据,例如支持 NDEF 的 NFC 标签,当这些设备在阅读器的磁场内时。
  NDEFReader对象
  下面的示例表示如何在通用读取处理程序和专门用于单次写入的处理程序之间进行协调。 为了写入,需要找到并读取标签。 这时您能够检查它是否真的是您要写入的标签。 这就是为什么建议从阅读事件中调用 write() 的原因。const ndef = new NDEFReader(); let ignoreRead = false; ndef.onreading = (event) => {   if (ignoreRead) {     return;      // 写入挂起,忽略后续读取   }   console.log("We read a tag, but not during pending write!"); }; function write(data) {   ignoreRead = true;   return new Promise((resolve, reject) => {     ndef.addEventListener(       "reading",       (event) => {         // 检查我们是否要写入此标签,或者拒绝         ndef           .write(data)           .then(resolve, reject)           .finally(() => (ignoreRead = false));            // 将ignoreRead标志位设置为false       },       { once: true }     );   }); } await ndef.scan(); // NDEFReader 接口的 scan() 方法激活读取设备并返回一个 Promise,该 Promise 要么 // 在读取 NFC 标签时resolve,要么在遇到硬件或权限错误时reject。 // 如果先前未授予"nfc"权限,则此方法会触发权限提示。 try {   await write("Hello World");   console.log("写入标签完成!"); } catch (err) {   console.error("写入出错", err); } 3.3 NDEFRecord对象
  Web NFC API 的 NDEFRecord() 构造函数返回一个新构造的 NDEFRecord 对象,该对象表示可以从兼容的 NFC 设备读取或写入的数据;例如支持 NDEF 的 NFC 标签。 new NDEFRecord(options)3.4 WebNFC的浏览器支持
  如下图所示,只有Android设备上的Chrome浏览器支持WebNFC。虽然桌面版本的Chrome在80-88版本通过试验性标签"enable-experimental-web-platform-features "启动该特性,但是在后续的89版本以上都移除了对WebNFC的支持。所以,从长远来看WebNFC还有很长的路要走。
  只有Android设备上的Chrome浏览器支持WebNFC
  注意:很多设备没有配备 NFC 阅读器,则不会返回任何数据,即使浏览器可能支持该API。4.WebNFC示例4.1 HTML结构

Web NFC 旨在为网站提供读取和写入 NFC 标签的能力,它们靠近用户的设备(通常为 5-10 厘米,2-4英寸)。 当前作用域仅限于 NDEF,一种轻量级二进制消息格式。 底层 I/O 操作(例如 ISO-DEP、NFC-A/B、NFC-F)和基于主机的 当前范围内不支持卡仿真 (HCE)。 4.2 完整JS代码scanButton.addEventListener("click", async () => { log("点击扫描按钮"); try { const ndef = new NDEFReader(); await ndef.scan(); log("> Scan started"); ndef.addEventListener("readingerror", () => { log("无法从 NFC 标签读取数据。 试试另一个?"); }); ndef.addEventListener("reading", ({ message, serialNumber }) => { log(`> Serial Number: ${serialNumber}`); log(`> Records: (${message.records.length})`); }); } catch (error) { log("Argh! " + error); } }); writeButton.addEventListener("click", async () => { log("用户点击写按钮"); try { const ndef = new NDEFReader(); await ndef.write("Hello world!"); // 写入数据 log("> Message written"); } catch (error) { log("Argh! " + error); } }); makeReadOnlyButton.addEventListener("click", async () => { log("用户点击设为只读按钮"); try { const ndef = new NDEFReader(); await ndef.makeReadOnly(); // 设置为只读 log("> NFC 标签已设为永久只读"); } catch (error) { log("Argh! " + error); } });5.总结   本文只是告诉大家什么是Web NFC,怎么使用它?因为笔者不是这方面的专家,很多内容也就浅尝辄止。但是文末的参考资料提供了大量优秀文档以供学习,如果有兴趣可以自行阅读。   参考资料   https://baijiahao.baidu.com/s?id=1639036926999857541   https://w3c.github.io/web-nfc/   https://developer.mozilla.org/en-US/docs/Web/API/NDEFReadingEvent/message   https://developer.mozilla.org/en-US/docs/Web/API/NDEFReader   https://developer.mozilla.org/en-US/docs/Web/API/NDEFRecord/NDEFRecord   https://googlechrome.github.io/samples/web-nfc/   https://caniuse.com/?search=WebNFC


EV电池容量和寿命突破有望?剑桥科学家发现性能下降的新秘密财联社上海12月7日讯(编辑黄君芝),英国剑桥大学的研究人员近日发现,锂离子的不规则运动可能会阻碍下一代电池材料的性能和容量。他们通过实时监测锂离子在一种潜在的新电池材料中的流动情利用阿里云ECS服务器和OSS对象存储器创建个人Cloudreve云盘1。介绍我们如果有一个ECS服务器,并且有比较大的OSS对象存储器。那么可以尝试结合两者搭建一个私人的云盘。毕竟ECS服务器的存储空间比较小。而OSS空间比较大。关于服务器购买和对头痛发热嗓子疼的治疗新方法解锁新型的治疗头痛咽痛发热的老药。现在人们去药店备药的时候,发现各种各样的感冒药,一药难求,非常紧缺。其实早在2000年前,华夏文明和瘟疫做长期的斗争时,中医就实践出了一种简单有效肝火旺心火旺胃火旺,症状不同,清火方法也各不相同大家好,我是中医周迺英,今天我给大家说一说肝火旺心火旺和胃火旺如何区分以及对应的清火方法。第一个是肝火旺。肝火旺主要是情志不遂引起的,是肝郁化火或者血热内盛所致,主要表现为头部的胀黄泉路真的存在吗?四川发现诡异现象,现今还没人能解释在很多民间传说中,人在死后往往会通过黄泉路,再进入地府。经过鬼差的引领,到达阎罗殿,最后根据自己一生的行为而判断是否能转世投胎。科学技术的进步,也让此前很多令人无法解释的现象得到了发面饼总是发硬?教你一招,外酥里软层次多,用手撕着吃,太香了发面饼总是发硬?教你一招,外酥里软层次多,用手撕着吃,太香了我喜欢吃饼,尤其是早餐,做一些又软又香的发面饼,全家都爱吃。和死面饼比起来,发面饼的口感更松软,好消化,适合孩子和老人吃你是否会同情一个穷人?还是会认为TA活该?你是否会同情一个穷人?还是会认为TA活该呢?你的答案是什么?我之前的答案是穷人活该,我们要通过自己的努力去赚钱,去往上爬,穷人都是放弃拼搏的人。凡是有同样观点的你,我们都被有钱有尊人性复杂到什么程度?1中国人讲究闷声发大财。别人邀请你做生意,要莫坑你的钱,要莫想赚你的钱。2农村啥都好,就是人心不正,嫌你穷,怕你富,见人说人话,见鬼说鬼话,学问不高,心眼不少,处处是谣言。3别什么订单超预期交付有点慢,smart张明霞打磨团队,加快交付在2022年的诸多新能源车品牌中,smart有点黑马的潜质。6月6日,smart品牌旗下首款量产车型精灵1上市并开启大定,市场反馈热烈,二十多个小时里,定单就超过了品牌2022年全能分走韩国一杯羹?这一领域中国制造市场份额上升,迎来创纪录订单中国经济周刊经济网讯(记者孙晓萌)12月15日,据新华社消息,沪东中华造船(集团)有限公司建造的第二艘大型天然气(LNG)运输船武当号提前47天交付,这是10月份交付的少林号的姊妹加快恢复市场活力跑出来的新订单为企业带来新变化央视网消息临近年底,不少企业都想要为明年平稳开局打好基础。如何抢抓新一年的订单是许多外贸企业这个月工作的重中之重,组团出海抢订单成为不少外贸企业的选择。凌晨1时,南京禄口机场的国际
詹皇儿子18岁生日!NBA最牛球二代,谈白人女友,开400万奔驰超跑头条创作挑战赛近日,NBA联盟第一任詹姆斯的长子布朗尼迎来了自己的18岁生日,作为联盟最牛球二代,布朗尼已经18岁成年,在这个具有纪念意义的日子里,老詹也是为儿子举办了非常有牌面的本土美妆品牌管理集团收购英国高端护肤品牌欧臻廷新京报贝壳财经讯近日,新奢美妆品牌管理集团USHOPAL宣布收购英国高端护肤品牌欧臻廷ARgENTUM,具体交易金额未披露。资料显示,USHOPAL为中国本土国际品牌集团,于去年3优德集团健康宝典秋冬喝的暖茶,力荐寒露节气后,昼渐短,日渐冷,空气湿度也逐渐变低,有的人出现了皮肤干燥口眼干易疲劳等症状,推荐五款茶饮,滋阴生津有妙用。红枣枸杞茶红枣有健脾和胃养肝补血等作用,适合秋天食用。红枣与枸许家印18亿豪宅开卖?大佬都顶不住,叫普通人怎么顶?你好我是华人志的无忧君,今天来讲大佬卖房的事。一则许家印在英国价值18亿的豪宅正在出售的消息,最近在国内的互联网上流传。这则消息的来源,是英国的金融时报。根据英国的金融时报近日的报见证奇迹!1人能做出3A品质中世纪种田全面战争大作?内容来自GameLook图文来源一致近日,最新一期的Steam新品节正式开启,为全球玩家带来了数百款游戏Demo体验。其中,独立开发者SlavicMagic利用虚幻引擎4开发的新游还珠格格人到中年才明白,老佛爷不喜欢紫薇的原因有多现实尔康一直不懂,为何知书达理琴棋书画样样皆通的紫薇得不到老佛爷的喜欢。在老佛爷眼里,紫薇这个亲孙女跟收养的小燕子处于同一地位,两者并无多大区别。在他看来,小燕子咋咋呼呼的性子不得老佛红土之王纳达尔荣升老爸!皇马官方祝贺22座大满贯获得者据西班牙马卡报报道,36岁的网球红土天王纳达尔荣升父亲。这是纳达尔与妻子的第一个孩子,此前两人经过十几年的爱情长跑,于2019年结为夫妻。纳达尔的儿子名字里也有Rafael,西班牙全球圈养大熊猫种群数量达到673只十年增长近一倍来源新华网憨态可掬的国宝大熊猫,深受世界人民喜爱。中国大熊猫保护研究中心主任段兆刚11日告诉记者,十年来,大熊猫人工繁育等技术快速发展,目前全球圈养大熊猫种群数量达到673只,较十全球萧条可能已经加速到来了刚刚过去的2021年,国内外的各行各业都是遍地惊雷,就业寒冬已经降临。沃尔玛大规模关店,香奈儿停产收缩,劳力士宣布停工,空客大幅度增加停薪留职人数。回望国内,恒大暴雷,苏宁失血,教美好生活看信阳城市IP山哥茶妹表情包上线啦!快来收藏使用10月11日,从信阳市文化旅游投资集团有限公司获悉,美好生活看信阳城市IP山哥茶妹表情包已上线。9月17日,信阳城市IP形象山哥茶妹精彩亮相。山哥茶妹不单单是一个IP符号,更代表着佳兆业继续专注于完成及交付项目10月10日晚间,佳兆业集团发布有关季度最新消息的公告。关于业务运营方面,佳兆业称集团已经并将会继续专注于完成及交付其物业项目,其将继续与品牌伙伴(包括国有企业)合作开发其物业项目