使用replace方法拦截systemShare.ShareController的show接口。
import { common } from "@kit.AbilityKit"; import { systemShare } from "@kit.ShareKit"; import { util } from '@kit.ArkTS'; import { uniformTypeDescriptor as utd } from '@kit.ArkData'; import { promptAction } from '@kit.ArkUI'; @Entry @Component struct BlockSharePage { aboutToAppear(): void { util.Aspect.replace(systemShare.ShareController, 'show', false, () => { this.getUIContext().getPromptAction().showToast({ message: "禁止分享", duration: 2000, showMode: promptAction.ToastShowMode.TOP_MOST, bottom: 85 }); }); } private async shareFile(): Promise<void> { let uiContext: UIContext = this.getUIContext(); let context: common.UIAbilityContext = uiContext.getHostContext() as common.UIAbilityContext; let data: systemShare.SharedData = new systemShare.SharedData({ utd: utd.UniformDataType.HYPERLINK, content: '',//替换为真实链接地址 title: '华为商城', description: 'Pura 70 Ultra', label: '华为商城' // 单选模式时生效 }); let controller: systemShare.ShareController = new systemShare.ShareController(data); controller.on('dismiss', () => { console.info('Share panel closed'); }); controller.show(context, { selectionMode: 0, excludedAbilities: [systemShare.ShareAbilityType.COPY_TO_PASTEBOARD], // 从操作区排除复制操作 }); } build() { RelativeContainer() { Text("文本分享") .id('BlockSharePageHelloWorld') .fontSize($r('app.float.page_text_font_size')) .fontWeight(FontWeight.Bold) .alignRules({ center: { anchor: '__container__', align: VerticalAlign.Center }, middle: { anchor: '__container__', align: HorizontalAlign.Center } }) .onClick(() => { this.shareFile() }) } .height('100%') .width('100%') } }