material-hmos/entry/src/main/ets/manager/ShareManager.ets

40 lines
1.4 KiB
Plaintext

import { systemShare } from '@kit.ShareKit';
import { uniformTypeDescriptor as utd } from '@kit.ArkData';
import { BusinessError } from '@kit.BasicServicesKit';
import { AppUtil, FileUtil } from '@pura/harmony-utils';
export class ShareManager {
/**
* 分享文件
* @param path
*/
static shareFile(path: string) {
// 获取精准的utd类型
let ext = ''
let type = ''
if (path.endsWith('.mp4')) {
ext = '.mp4'
type = utd.UniformDataType.VIDEO
} else if (path.endsWith('.mp3')) {
ext = '.mp3'
type = utd.UniformDataType.AUDIO
} else if (path.endsWith('.jpeg')) {
ext = '.jpeg'
type = utd.UniformDataType.IMAGE
}
let utdTypeId = utd.getUniformDataTypeByFilenameExtension(ext, type);
let shareData: systemShare.SharedData = new systemShare.SharedData({
utd: utdTypeId,
uri: FileUtil.getUriFromPath(path)
});
let controller: systemShare.ShareController = new systemShare.ShareController(shareData);
controller.show(AppUtil.getContext(), {
selectionMode: systemShare.SelectionMode.SINGLE,
previewMode: systemShare.SharePreviewMode.DETAIL,
}).then(() => {
console.info('ShareController show success.');
}).catch((error: BusinessError) => {
console.error(`ShareController show error. code: ${error.code}, message: ${error.message}`);
});
}
}