找回密码
 立即注册
搜索

开发问题 NFC贴卡后onDiscovered 回调没有触发

4
回复
416
查看
[复制链接]

3

主题

6

帖子

45

积分

 楼主| 2025-3-13 11:14:45 显示全部楼层 |阅读模式

环境:

调试器: 1302

快应用预览版: 1070/1100 (2者都测试一样的效果)

设备: RedMi K20 Pro

OS: Android 11

MIUI: 12.5.6

NFC 开关已开启,应用中测试NFC时正常拉起授权请求。

问题描述:

按官网描述流程实现:

  • 1)调用tt.getNFCAdapter()获取NFC适配器实例

  • 2)调用NFCAdapter.onDiscovered(function callback)注册贴卡监听回调

  • 3)调用NFCAdapter.startDiscovery(Object object)开始监听贴卡

  • 4)贴卡,onDiscovered回调

实际运行过程,1-3如预期,能拉起NFC授权提示,授权后贴卡。第4步贴卡后,设备有震动反馈,但是 onDiscovered 回调没有触发。

代码如下:

<template> <div class="wrapper"> <text class="title">{{ title }}</text> <input class="btn" type="button" value="启动NFC" onclick="startNFC" /> </div> </template> <script> import nfc from '@system.nfc' export default { private: { title: '欢迎体验快应用开发', }, onInit() { this.$page.setTitleBar({ text: '欢迎体验快应用开发' }) if (this.$page.setMeta) { this.$page.setMeta({ title: '示例', description: '快应用是移动互联网新型应用生态。', }) } }, startNFC() { try { console.log('registDiscoveryHandler 1') let nfcadapter = nfc.getNFCAdapter() nfcadapter.offDiscovered() console.log('registDiscoveryHandler 注册贴卡回调') nfcadapter.onDiscovered({ callback: (data) => { console.log('onDiscovered callback', data) if (data.id) { console.log(`id  = ` + new Int8Array(data.id)) } else { console.log(`null of id`) } } }) nfcadapter.startDiscovery({ success: () => { console.log('startDiscovery success') }, fail: (data, code) => { console.log('startDiscovery fail', code) }, complete: () => { console.log('startDiscovery complete') } }); } catch (ex) { this.isOnDiscoveredRegisted = false console.error('registDiscoveryHandler 异常', ex) } }, } </script> <style lang="less"> .wrapper { .flex-box-mixins(column, center, center); .title { font-size: 8 * @size-factor; text-align: center; color: @black; } .btn { width: 90 * @size-factor; height: 16 * @size-factor; border-radius: 8 * @size-factor; background-color: @brand; color: @white; font-size: 30px; margin-top: 16 * @size-factor; } } </style>

可以确定手机设备本身是没有问题的,微信小程序中相应的代码在同台手机上可以正常执行。

请帮忙分析下原因,感谢!


回复

使用道具 举报

3

主题

6

帖子

45

积分

 楼主| 2025-3-13 11:24:31 显示全部楼层
问题补充: org.hapjs.mockup 快应用框架下可以触发回调 com.miui.hybrid 快应用框架无法触发回调 上架后实际运行的框架是哪个呢?

点评

实际运行com.miui.hybrid  详情 回复 发表于 2025-3-17 16:37
回复

使用道具 举报

5

主题

65

帖子

350

积分

2025-3-17 16:37:33 显示全部楼层
jacklou 发表于 2025-3-13 11:24 问题补充: org.hapjs.mockup 快应用框架下可以触发回调 com.miui.hybrid 快应用框架无法触发回调
实际运行com.miui.hybrid
回复

使用道具 举报

5

主题

65

帖子

350

积分

2025-3-17 16:38:01 显示全部楼层

小米手机上的快应用暂时对NFC功能支持还未完善好

回复

使用道具 举报

3

主题

6

帖子

45

积分

 楼主| 2025-3-18 08:08:29 显示全部楼层
收到,感谢回复
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册