HarmonyOS 鸿蒙Next中API调用分享面板的时候怎么屏蔽竞品应用呢

HarmonyOS 鸿蒙Next中API调用分享面板的时候怎么屏蔽竞品应用呢 API调用分享面板的时候怎么屏蔽竞品应用呢

6 回复

尊敬的开发者,您好!

请问您是在什么样的业务场景中使用该能力,交互流程是怎样的,在哪一个环节遇到了问题?方便提供一下其他开发平台的实现方案或者接口(优先官方文档的内容)吗?如给您带来不便,敬请谅解。请您注意提供的内容不要包含您或第三方的非公开信息。

更多关于HarmonyOS 鸿蒙Next中API调用分享面板的时候怎么屏蔽竞品应用呢的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


目前只能屏蔽一些系统级能力,不支持屏蔽什么竞品应用哦!看下面的例子:

启动分享面板,并配置不显示打印快捷操作。如需屏蔽其他系统级快捷操作:

// 构建ShareController
let controller: systemShare.ShareController = new systemShare.ShareController(data);
let context: common.UIAbilityContext = uiContext.getHostContext() as common.UIAbilityContext;
// 注册分享面板关闭监听
controller.on('dismiss', () => {
  console.info('Share panel closed');
  // 分享结束,可处理其他业务。
});
// 进行分享面板显示
controller.show(context, {
  previewMode: systemShare.SharePreviewMode.DETAIL,
  selectionMode: systemShare.SelectionMode.SINGLE,
  excludedAbilities: [systemShare.ShareAbilityType.PRINT]
})

ShareAbilityType

系统能力类型定义。用于排除操作区的系统能力。

**模型约束:**此接口仅可在Stage模型下使用。

**系统能力:**SystemCapability.Collaboration.SystemShare

**起始版本:**5.0.0(12)

名称 说明
COPY_TO_PASTEBOARD 0 复制
SAVE_TO_MEDIA_ASSET 1 保存至图库
SAVE_AS_FILE 2 另存为
PRINT 3 打印
SAVE_TO_SUPERHUB 4 添加至中转站

这是系统级的,暂时不支持屏蔽。

[裂开]

在HarmonyOS Next中,调用分享面板时屏蔽竞品应用可通过ShareDialogexcludeBundles参数实现。该参数接收一个字符串数组,指定需要排除的应用包名列表。在调用分享功能前,将竞品应用的包名添加到排除列表中即可。此方法直接作用于系统分享组件,无需额外权限或配置。具体实现时,需预先获取目标竞品应用的准确包名。

在HarmonyOS Next中,可以通过ShareDialogexcludedTypes参数来过滤分享面板中不希望显示的竞品应用。具体实现时,需要定义排除的应用类型列表(如微信、QQ等竞品的包名或类型标识),并在调用分享API时传入该参数。示例代码:

let excludedTypes = ['com.tencent.mm', 'com.tencent.mobileqq']; // 示例竞品包名
let shareDialog = new ShareDialog(context, {
  excludedTypes: excludedTypes
});

这样设置后,分享面板将自动屏蔽指定的竞品应用,仅显示允许的应用选项。注意需确保传入的标识与系统应用类型匹配。

回到顶部