问题描述
通过微信聊天中「更多方式打开」(场景值 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。
复现步骤
- 在微信聊天中发送/转发一个 PDF 文件(文件名含中文,如「年度报告.pdf」)
- 长按该文件 → 选择「更多方式打开」→ 选择我的小程序
- 小程序
onShow中打印options.forwardMaterials[0] - 观察
name字段的值
补充说明
怀疑是微信在转发/缓存文件时,以 hash 重命名存储,而 forwardMaterials 直接透传了存储名,未映射回原始文件名。该问题导致小程序无法向用户展示正确的文件名,影响用户体验。
请问这是预期行为还是 Bug?如果是预期行为,是否有其他 API 可以获取原始文件名?

2. 安卓 8.0.69 OriginOS6
3.用 ima 和元宝小程序打开也能复现