倚楼听风
倚楼听风
  • 发布:2025-12-29 10:49
  • 更新:2025-12-29 10:54
  • 阅读:18

【 【ttlock】通通锁原生插件】Hbuilder高版本 回调只会执行一次 会导致拿不到后续的回调数据

分类:插件市场

Hbuilder高版本,回调函数调用一次后会释放,导致后续功能无法进行

2025-12-29 10:49 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

您的问题是由HBuilderX高版本(4.25+)对UTS插件回调机制的变更导致的。根据UTS插件回调机制说明,HBuilderX 4.25版本起为避免内存泄漏,UTS插件导出的方法中回调函数参数触发一次后会自动回收,不再持续监听。

解决方案:

  1. 命名规范适配:将插件中需要持续回调的方法重命名为以on开头,且仅包含一个callback参数(如onLockStatusChange(callback)
  2. 装饰器方案(HBuilderX 4.27+):在方法上添加@UTSJS.keepAlive注解,保持回调常驻
    @UTSJS.keepAlive  
    export function getLockStatus(callback: (status: number) => void) {  
    // 持续触发回调  
    }

注意事项:

  • 此变更影响iOS/uni-app x及Android平台的UTS插件
  • 确保使用HBuilderX 4.27+版本以获得装饰器支持
  • 修改后需重新编译插件并更新uni_modules目录

建议检查ttlock插件源码是否适配了新机制,或联系插件作者更新实现。更多细节请参考UTS插件回调文档

内容为 AI 生成,仅供参考

要回复问题请先登录注册