40 lines
1.4 KiB
Plaintext
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}`);
|
|
});
|
|
}
|
|
} |