Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从NFC阅读器直接读取到桌面web应用程序?_Javascript_Google Chrome_Libusb_Lib Nfc_Webnfc - Fatal编程技术网

Javascript 从NFC阅读器直接读取到桌面web应用程序?

Javascript 从NFC阅读器直接读取到桌面web应用程序?,javascript,google-chrome,libusb,lib-nfc,webnfc,Javascript,Google Chrome,Libusb,Lib Nfc,Webnfc,我让LibNFC从Linux终端识别我的ACR122U阅读器,我想知道是否有一种方法可以让它在Linux桌面上通过Chrome工作,因为它与Android支持非常相似,所有的NFC设备处理都是由libnfc完成的,浏览器只需要知道这个库,而不是每种类型的usb或其他可以处理NFC的设备 我已尝试使用WebNFC API连接它: document.getElementByIdscanButton.addEventListenerclick,异步=>{ log.innerHTML=NFC寄存器已启

我让LibNFC从Linux终端识别我的ACR122U阅读器,我想知道是否有一种方法可以让它在Linux桌面上通过Chrome工作,因为它与Android支持非常相似,所有的NFC设备处理都是由libnfc完成的,浏览器只需要知道这个库,而不是每种类型的usb或其他可以处理NFC的设备

我已尝试使用WebNFC API连接它:

document.getElementByIdscanButton.addEventListenerclick,异步=>{ log.innerHTML=NFC寄存器已启动。。。; 试一试{ const ndef=新的NDEFReader; 等待ndef扫描; log.innerHTML=>扫描已开始; ndef.addEventListenerreadingerror,=>{ log.innerHTML=Argh!无法从NFC标记读取数据。是否尝试其他标记?; }; ndef.addEventListenerreading,{message,serialNumber}=>{ log.innerHTML=ID${serialNumber}logged@+dt.toLocaleTimeString;}; }捕捉错误{ log.innerHTML=错误; } }; document.getElementByIdstopButton.onclick=函数{ log.innerHTML=NFC寄存器停止@+新日期.toLocaleTimeString; }; 网络NFC仅在2021年2月在Android上受支持。看

WebUSB错误表明您请求的接口实现了以下保护类:

//USB类别代码由USB-IF定义: // https://www.usb.org/defined-class-codes const uint8_t kProtectedClasses[]={ 0x01,//音频 0x03,//HID 0x08,//大容量存储 0x0B,//智能卡 0x0E,//视频 0x10,//音频/视频 0xE0,//无线控制器蓝牙和无线USB }; 我想知道这是否是linux的事情,因为我能够通过WebUSB与ACR122U和SCL3711 NFC阅读器USB设备进行通信。看

你有没有先尝试一下WebHID?请参见,自2021年2月起,Android仅支持网络NFC。看

WebUSB错误表明您请求的接口实现了以下保护类:

//USB类别代码由USB-IF定义: // https://www.usb.org/defined-class-codes const uint8_t kProtectedClasses[]={ 0x01,//音频 0x03,//HID 0x08,//大容量存储 0x0B,//智能卡 0x0E,//视频 0x10,//音频/视频 0xE0,//无线控制器蓝牙和无线USB }; 我想知道这是否是linux的事情,因为我能够通过WebUSB与ACR122U和SCL3711 NFC阅读器USB设备进行通信。看


你有没有先尝试一下WebHID?请参阅

您需要用户下载或运行运行运行本地主机web服务器的程序,您的web应用程序可以连接到该服务器以使用本地硬件-例如,这就是Dell的服务标签查找功能的工作方式。噢,感谢您的支持和这个伟大的示例;我想这可能是我的B计划,但我真的希望它是一个独立的web应用程序,不需要安装额外的程序。至少这样,它可以在多个平台上运行,但非常感谢您提供的解决方案-如果所有其他方法都失败了,我会求助于此:您是否尝试过在https://web应用程序中运行您的WebNFC示例,例如使用letsencrypt免费证书?据我所知,为了访问NFC阅读器,您需要处于一个安全的环境中,这就是为什么WebNFC在线实验应该从https://configured website@FSp开始工作的原因。是的,我在环境和https域地址中使用应用程序来测试应用程序。我认为问题主要出在ACR122U阅读器上……您需要用户下载或运行运行一个运行本地主机web服务器的程序,您的web应用程序可以连接到该服务器以使用本地硬件——例如,这就是Dell的服务标签查找功能的工作方式。噢,感谢您的支持和这个伟大的示例;我想这可能是我的B计划,但我真的希望它是一个独立的web应用程序,不需要安装额外的程序。至少这样,它可以在多个平台上运行,但非常感谢您提供的解决方案-如果所有其他方法都失败了,我会求助于此:您是否尝试过在https://web应用程序中运行您的WebNFC示例,例如使用letsencrypt免费证书?据我所知,为了访问NFC阅读器,您需要处于一个安全的环境中,这就是为什么WebNFC在线实验应该从https://configured website@FSp开始工作的原因。是的,我在环境和https域地址中使用应用程序来测试应用程序。我认为问题主要在于ACR122U阅读器……你的Chrome NFC在WebUSB上运行的例子是什么?我假设chrome.nfc.*代码行意味着它是面向chrome应用程序集合的,而不是直接在网络上运行,如果这有意义的话?我试过了,它对我很有效,但是chrome-nfc.js不能
应用到某个实时网站上运行的东西上,对吗?关于WebHID,我填写了vendorID和所有与ACR122U的链接,但未被识别;我会尽力保持并摆弄它,但运气不好:/正如你在书中读到的,chrome-nfc.js在浏览器环境中的工作应该和它使用WebUSB一样好,不仅仅是一个Chrome应用程序环境。我在你的repo上尝试了使用WebUSB的示例,并在Linux和Windows上通过Chrome运行了它,但我一直得到相同的错误,即NFC阅读器是一个受保护的类,在promise DomeException中是未破坏的:拒绝访问。所以我仍然不确定它是如何为你工作的,我也不认为有一个旁路。虽然它在Linux上可以作为Chrome应用程序使用,但奇怪的是,随着它被淘汰,我不认为我会把重点放在开发上,对吗?WebHID似乎不认为阅读器是一个“兼容设备”,所以我回到sqaure one…很抱歉最近的回复@François Beaufort!Linux上的ChromeNFC示例:Linux上的USB内部屏幕:Windows上的ChromeNFC示例:Windows上的USB内部屏幕:两个操作系统的Chrome中的站点信息”:是的,给你;Linux窗口有两个Interface 0元素,一个在main部分,另一个在configuration descriptor:/。在Windows上,我只能阅读主要部分的界面0:您的Chrome NFC示例是否在WebUSB上运行?我假设chrome.nfc.*代码行意味着它是面向chrome应用程序集合的,而不是直接在网络上运行,如果这有意义的话?我试过了,它对我很有效,但是chrome-nfc.js不能应用于在现场网站上运行的东西,对吗?关于WebHID,我填写了vendorID和所有与ACR122U的链接,但未被识别;我会尽力保持并摆弄它,但运气不好:/正如你在书中读到的,chrome-nfc.js在浏览器环境中的工作应该和它使用WebUSB一样好,不仅仅是一个Chrome应用程序环境。我在你的repo上尝试了使用WebUSB的示例,并在Linux和Windows上通过Chrome运行了它,但我一直得到相同的错误,即NFC阅读器是一个受保护的类,在promise DomeException中是未破坏的:拒绝访问。所以我仍然不确定它是如何为你工作的,我也不认为有一个旁路。虽然它在Linux上可以作为Chrome应用程序使用,但奇怪的是,随着它被淘汰,我不认为我会把重点放在开发上,对吗?WebHID似乎不认为阅读器是一个“兼容设备”,所以我回到sqaure one…很抱歉最近的回复@François Beaufort!Linux上的ChromeNFC示例:Linux上的USB内部屏幕:Windows上的ChromeNFC示例:Windows上的USB内部屏幕:两个操作系统的Chrome中的站点信息”:是的,给你;Linux窗口有两个Interface 0元素,一个在main部分,另一个在configuration descriptor:/。在Windows上,我只能读取主节的界面0: