Android Chrome 81 上的 NFC 实施不工作

Implementation of NFC on Android Chrome 81 not working

我正在尝试使用以下代码从 chrome 81 读取 NFC 标签:

<html>
<head>
    <title>NFC</title>
</head>
<body>
    <button onclick="reader()">Scan</button>

    <script>
        function reader(){
            const reader = new NDEFReader();
            reader.scan().then(() => {
                alert("Scan started successfully.");
                reader.onerror = () => {
                    alert("Cannot read data from the NFC tag. Try another one?");
                };
                reader.onreading = event => {
                    alert("NDEF message read.");
                };
            }).catch(error => {
                alert(`Error! Scan failed to start: ${error}.`);
            });
        }
    </script>
</body>

我遇到的问题是它从 nfc 标签读取条目,但没有像代码建议的那样发出警报,而是试图引导我安装在 phone 上的应用程序。但是,当我使用使用完整 API 的 https://googlechrome.github.io/samples/web-nfc/ 时,它可以工作并在网页中显示为数据。主要区别在于我使用通过 chrome://flags 方法启用 NFC API。

除了阅读标签,我的唯一目的是将内容保存到 sessionStorage 作为网站其他部分使用的变量。

提前致谢

https://googlechrome.github.io/samples/web-nfc/ 和您的代码之间的一个重要区别是该演示曾经在其网页中有一个原始试用令牌。

现在,要在 Android 上试验 Web NFC,请启用 chrome://flags 中的 #experimental-web-platform-features 标志,如 https://web.dev/nfc/#use[=13= 中所述]

希望一旦发布到 web 平台就不需要这个标志了。