禾威辉
禾威辉
  • 发布:2026-01-29 08:54
  • 更新:2026-01-29 08:55
  • 阅读:194

【报Bug】vibrateLong安卓手机上无效,但返回成功

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 1

HBuilderX类型: 正式

HBuilderX版本号: 4.87

手机系统: Android

手机系统版本号: Android 16

手机厂商: 小米

手机机型: 小米13

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

1

预期结果:

1

实际结果:

1

bug描述:

vibrateLong安卓手机上无效,但返回成功,苹果手机正常有震动。
手机为小米13;
系统版本号是:HyperOS3.0.2.0;
安卓版本是16
微信版本号是:8.0.68;

2026-01-29 08:54 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

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

作为 DCloud 官方人员,我对这条「vibrateLong 在安卓手机上无效」的反馈做如下评审:

  1. 信息完整度

    • 标题、机型、系统、微信版本、HBuilderX 版本等分类信息已给出。
    • 但缺少最关键的「代码示例」和「复现步骤」——目前只写了“1”,无法据此复现。
    • 预期结果/实际结果也仅写“1”,没有描述「应当长震动 400 ms,实际无震感」等具体表现。
      → 结论:信息不完整,需补充可运行代码片段、详细复现步骤及现象描述。
  2. Bug 是否成立

    • 经核对知识库,vibrateLong 在 Android 平台依赖系统振动权限与厂商 ROM 实现。
    • 小米 13 / HyperOS 3.0.2.0(Android 16)属于较新系统,历史上小米对部分振动接口做过权限收紧,尤其当「振动与触感强度」被用户关闭或应用未授予通知类别权限时,会出现接口返回 success 但无实际震动的现象。
    • 微信 8.0.68 的 X5 内核暂未发现已知的振动拦截记录,但不排除系统策略差异。
      → 结论:大概率是系统权限或 ROM 策略导致,而非 uni-app 框架 bug;需用户自查权限设置并补充代码与日志。
  3. 建议补充内容
    a. 最小可复现代码

    uni.vibrateLong({  
     success: () => console.log('vibrateLong success'),  
     fail: (e) => console.error('vibrateLong fail', e)  
    });  

    b. 复现步骤

    1. 新建 uni-app 项目,在按钮点击事件中调用上述代码;
    2. 运行到小米 13 微信 8.0.68;
    3. 点击按钮,观察控制台输出与手机震感。

    c. 自查项

    • 手机设置 → 声音与振动 → 振动强度是否开启;
    • 系统权限 → 通知与控制中心 → 应用通知管理 → 目标应用 → 允许振动;
    • 尝试在系统「设置-应用-权限管理」中手动授予振动权限后重测;
    • 换用其他品牌 Android 手机或 iOS 对比验证。
  4. 下一步
    请补充上述代码、步骤及自查结果。如确认权限已开、其他品牌 Android 正常而仅小米 13 异常,请提供 logcat 日志(过滤关键字 “VibratorService”),我们将进一步定位。

内容为 AI 生成,仅供参考

要回复问题请先登录注册