从基础库 1.28.0 开始支持
支持平台:Android、iOS
客户端版本:需要升级至QQ8.8.0及以上版本
支持类型:仅小程序,小游戏暂不支持
QQ聊天内素材(文件、图片、视频和html文件)的打开方式增加使用小程序打开的入口。用户可通过小程序处理聊天内的文件、图片、视频和html文件。例如用小程序将文件存储到网盘、给图片加滤镜、进行视频剪辑或者将html文件保存到笔记等。对于图片类素材,若图片中含有二维码则不支持用小程序打开。
用户在打开QQ聊天内的素材的分享面板时,如果该用户曾经使用过的小程序中有可以打开该类型素材的小程序,则该素材的分享面板中会出现“使用小程序打开”的入口。
开发者需要在小程序全局配置(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 | |
text/csv | .csv | |
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 | |
application/vnd.android.package-archive | .apk | |
application/x-msdos-program | .exe | |
application/vnd.ms-works | .wps |
小程序启动参数里场景值为1173,该场景下启动参数和query同一级有一个数组forwardMaterials,代表转发的文件信息,数组中每一个对象包含属性{type,name,path,size}分别代表文件类型,文件名,文件路径或url,文件大小
小程序提审时会审核声明的supportedMaterials是否合规,小程序发布上线后相应文件类型打开入口才会出现小程序。
如果小程序实现的功能价值较低将不会被通过审核,包括但不限于以下情况:
1.打开小程序后的功能与对应的素材没有任何关系:只是通过这个入口打开了自己的小程序,而并没有对素材做任何的处理。 2.打开小程序后处理素材的方式过于简单:比如只是播放视频或只是查看.docx文件等通过QQ聊天就能实现的简单功能。 请开发者结合自身小程序的功能与用户需求进行适配。
体验版小程序支持单独配置supportedMaterials,和正式版的小程序配置相互独立,上述相应的入口小程序列表也会单独展示体验版小程序。
开发者可在自定义编译模式下通过场景值1173调试该功能。
onLoad: function () {
const launchInfo = qq.getLaunchOptionsSync(); // 获取到冷启动时的数据
if(launchInfo.scene === 1173){
//如果场景值正确,则执行正常的功能(对聊天素材的处理)
const materials = launchInfo.forwardMaterials[0];
console.log(materials.path);
//这里的materials.path为聊天素材文件(图片/视频)的本地临时路径
}
qq.onAppShow((res) => {
// 获取到热启动时的数据
if(res.scene === 1173){
//如果场景值正确,则执行正常的功能(对聊天素材的处理)
const materials = res.forwardMaterials[0];
console.log(materials.path);
//这里的materials.path为聊天素材文件(图片/视频)的本地临时路径
}
});
},
← 定向分享 扫普通链接二维码打开小程序 →