收藏
回答

场景值1173 forwardMaterials.name 返回的是hash文件名,非原始文件名?

问题描述

通过微信聊天中「更多方式打开」(场景值 1173)唤起小程序时,forwardMaterials[0].name 返回的不是文件的原始名称,而是微信内部存储的 hash 文件名。

实际返回值

{
  "type": "application/pdf",
  "name": "9e20f478899dc29eb19741386f9343c8_29428067400034918736_m.pdf",
  "path": "wxfile://tmp_22715c4c715af7c9d8d16bef1683c3cdc4cfe44787043e01.pdf",
  "size": 1704740
}

name 字段返回的是类似 MD5 的 hash 命名,path 也是临时路径 hash 名。两个字段都无法获取到用户可见的原始文件名。

期望行为

根据官方文档forwardMaterials 中的 name 应为"文件名",期望返回用户在聊天中看到的原始文件名,如 年度报告.pdf

复现步骤

  1. 在微信聊天中发送/转发一个 PDF 文件(文件名含中文,如「年度报告.pdf」)
  2. 长按该文件 → 选择「更多方式打开」→ 选择我的小程序
  3. 小程序 onShow 中打印 options.forwardMaterials[0]
  4. 观察 name 字段的值

补充说明

怀疑是微信在转发/缓存文件时,以 hash 重命名存储,而 forwardMaterials 直接透传了存储名,未映射回原始文件名。该问题导致小程序无法向用户展示正确的文件名,影响用户体验。

请问这是预期行为还是 Bug?如果是预期行为,是否有其他 API 可以获取原始文件名?

回答关注问题邀请回答
收藏

1 个回答

  • 智能回答 智能回答 本次回答由AI生成
    星期三 13:36
    有用
    回复 1
    • 轩宇
      轩宇
      星期三 13:51
      1. 3.9.3
      2. 安卓 8.0.69 OriginOS6
      3.用 ima 和元宝小程序打开也能复现
      星期三 13:51
      回复
登录 后发表内容