如何避免Web NFC的NDEFReader在路由导航时导致Chrome崩溃?
Chrome Web NFC API路由导航后调用scan()触发浏览器崩溃
问题概述
在Android 13系统的Chrome 110/111浏览器中,Web应用使用Web NFC API扫描NFC标签时,若在包含实例化NDEFReader对象并调用ndef.scan()的组件路由间导航,Chrome会发生崩溃。具体表现为:首次进入该路由可正常扫描标签,但导航至首页后再次返回该路由并调用ndef.scan()时,Web应用直接崩溃。
复现步骤
- 访问官方Web NFC示例页面
- 点击「Scan」按钮
- 扫描NFC标签
- 再次点击「Scan」按钮
- 浏览器出现崩溃
核心代码示例
const ndef = new NDEFReader(); await ndef.scan();
无崩溃场景
- 再次调用
ndef.scan()前刷新页面,不会崩溃 - 未实际扫描标签时,可多次调用
scan()
环境兼容性
可复现环境
- Android 13 + Chrome 110(2023年2月5日系统安全更新)+ Pixel 6
- Android 13 + Chrome 111(2023年2月5日系统安全更新)+ Pixel 6
不可复现环境
- Android 13 + Chrome 110(2022年8月5日系统安全更新)+ Pixel 4
- Android 13 + Chrome 110(2022年10月5日系统安全更新)+ Pixel 4
后续跟进
已向Chromium官方提交Bug,可参与投票推进问题修复。
内容的提问来源于stack exchange,提问作者ngaffer
相关产品推荐
相关产品推荐

