从基础库 2.14.3 开始支持
支持平台:iOS、Android
客户端版本:通过 webview 打开微信小程序需要升级到微信 7.0.22 及以上版本,通过文件和视频打开微信小程序需要升级到微信 8.0.0 及以上版本,通过图片打开微信小程序需要升级到微信 8.0.1 及以上版本
支持类型:仅微信小程序,小游戏暂不支持
功能介绍
在微信聊天中打开素材时,增加了使用微信小程序打开的入口。用户可以通过微信小程序处理聊天中的文件、图片、视频和 webview(包括公众号文章)。例如,用微信小程序将文件存储到网盘、给图片加滤镜、进行视频剪辑,或者将 webview/公众号文章保存到笔记等。目前,只有不带二维码的图片支持直接通过微信小程序打开。
当用户在微信聊天中打开素材时,如果微信小程序配置了支持打开该类型的素材并通过审核,并且用户曾经使用过该微信小程序,那么在打开该类型素材时,就会出现使用微信小程序打开的入口。
在 PC 端基础库大于 3.7.6 的环境下,用户可以通过拖入文件的方式来触发微信小程序打开。当拖入符合规则的文件后,框架侧将会重新启动(reLaunch)微信小程序。如果拖入不符合规则的文件,框架侧会提示用户该文件不支持。
使用说明
开发者需要在微信小程序的全局配置(app.json)中声明支持打开的文件类型,并且对一种文件类型只能声明一种处理方式。
{
"supportedMaterials": [
{
"materialType": "text/html",
"name": "用${nickname}打开",
"desc": "描述",
"path": "pages/index/"
},
{
"materialType": "video/*",
"name": "用${nickname}播放",
"desc": "描述",
"path": "pages/index/"
},
{
"materialType": "video/mp4",
"name": "用${nickname}播放",
"desc": "描述",
"path": "pages/index/"
}
]
}
| 属性 | 类型 | 必填 | 描述 |
|---|---|---|---|
| materialType | String | 是 | 支持文件类型的MimeType,音频和视频支持二级配置的通配模式,例如:video/*。如果通配模式配置和精确类型配置同时存在,则优先使用精确类型的配置(例如,video/*和video/mp4同时存在时,会优先使用video/mp4的配置)。 |
| name | String | 是 | 开发者配置的标题,在素材页面会展示该标题。配置中必须包含${nickname},代码包编译后会自动替换为微信小程序名称,如果声明了简称则会优先使用简称。除去${nickname},其余字数不得超过6个。 |
| desc | String | 是 | 用途描述,会在推荐列表中展示该描述,限定字数不超过22个。 |
| path | String | 是 | 在该场景下打开微信小程序时跳转的页面 |
最新客户端版本支持的MimeType类型:
| MimeType | 文件后缀 | 说明 |
|---|---|---|
| video/* | 视频类文件 | |
| audio/* | 音频类文件 | |
| image/* | 图片类文件 | |
| text/html | webview(包括公众号文章) | |
| text/plain | .txt | |
| application/* | 通用文件配置 | |
| application/pdf | ||
| application/msword | .doc | |
| application/vnd.openxmlformats-officedocument.wordprocessingml.document | .docx | |
| application/vnd.ms-word.document.macroEnabled.12 | .docm | |
| application/vnd.ms-excel | .xls | |
| application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | .xlsx | |
| application/vnd.ms-excel.sheet.macroEnabled.12 | .xlsm | |
| application/vnd.ms-powerpoint | .ppt | |
| application/vnd.openxmlformats-officedocument.presentationml.presentation | .pptx | |
| application/zip | .zip | |
| application/vnd.rar | .rar | |
| application/x-7z-compressed | .7z | |
| application/x-photoshop | .psd | |
| application/acad | .dwg | |
| application/x-cdr | .cdr | |
| application/dxf | .dxf | |
| application/step | .stp | |
| application/rtf | .rtf | |
| application/postscript | .ai |
微信小程序启动参数
微信小程序的启动参数中,场景值为1173。在该场景下,启动参数和 query 同一级有一个数组forwardMaterials,代表转发的文件信息。数组中的每一个对象包含属性{type, name, path, size},分别代表文件类型、文件名、文件路径或 URL、文件大小。
发布
微信小程序提审时,会审核声明的supportedMaterials是否合规。微信小程序发布上线后,相应文件类型的打开入口才会出现微信小程序。
如果微信小程序实现的功能价值较低,将不会通过审核,包括但不限于以下情况:
- 打开微信小程序后的功能与对应的素材没有任何关系:只是通过这个入口打开了微信小程序,而没有对素材做任何处理。
- 打开微信小程序后处理素材的方式过于简单:比如只是播放视频或只是查看.docx文件等,这些通过微信聊天就能实现的简单功能。
请开发者结合自身微信小程序的功能与用户需求进行适配。
调试
体验版
体验版微信小程序支持单独配置supportedMaterials,与正式版的微信小程序配置相互独立。上述相应的入口微信小程序列表也会单独展示体验版微信小程序。
开发者工具
开发者可以在自定义编译模式下,通过场景值1173来调试该功能。