@lx-frontend/wx-choose-media
说明
该工具方法整合了小程序的三个媒体选择api,包括 wx.chooseImage
、wx.chooseVideo
、wx.chooseMedia
该工具方法对 权限 和 取消操作 两种异常情况做了特殊处理
- 因小程序接口本身使用需系统授权微信使用摄像头和相册才能正常使用,封装后的方法调用在由于权限问题导致调用异常时,会提示引导用户打开,并正常返回 false,不触发异常
- 因取消操作触发异常时,正常返回false,不触发异常
- 其他异常信息原样抛出
使用
import wxChooseMedia, { ImageResult } from '@lx-frontend/wx-choose-media';
let res: ImageResult;
try {
res = await wxChooseMedia('image', {
count: 1,
sizeType: ['compressed'],
sourceType: ['camera'],
});
} catch (e) {
// 无权限和取消操作之外的情况导致的中断异常
return;
} finally {
// 对应原生api中complete回调
}
if (!res) return; // 取消操作 或 因没授权微信使用摄像头和相册中断操作
// 接口调用成功
const { tempFilePaths, tempFiles } = res;
参数说明
async function wxChooseMedia<T extends ImageConfig | VideoConfig | MediaConfig>(type: mediaType, config: T, toastErr = true): Promise<ImageResult | VideoResult | MediaResult>;
type
指定对应调用的小程序原生接口
Type: 'image' | 'video' | 'media'
Require: true
image: chooseImage
video: chooseVideo
media: chooseMedia
config
对应小程序原生api中的配置,参考小程序文档 image video media
toastErr
是否toast提示无权限和取消操作之外的情况导致的中断异常信息
Type: boolean
Default: true
返回结果说明
接口本身相关兼容性和支持信息请参考微信小程序官方开发文档