tencent cloud

腾讯云超级应用服务

动态与公告
【2025年1月2日】关于腾讯云小程序平台更名为腾讯云超级应用服务的公告
控制台更新动态
Android SDK 更新动态
iOS SDK 更新动态
Flutter 更新动态
IDE 更新动态
基础库更新动态
产品简介
产品概述
产品优势
应用场景
购买指南
计费概述
按量计费(后付费)
续费指引
停服说明
快速入门
套餐管理
概述
控制台账号管理
存储配置
加速配置
品牌化配置
平台功能
控制台登录
用户和权限体系
小程序管理
小游戏管理
应用管理
商业化
平台管理
用户管理
团队管理
运营管理
安全中心
代码接入指引
Demo 及 SDK 获取
Android
iOS
Flutter
App 服务端接入指南
GUID 生成规则
小程序开发指南
小程序介绍与开发环境
小程序代码组成
指南
框架
组件
API
服务端
JS SDK
基础库
IDE 使用指南
小游戏开发指南
指南
API
服务端
实践教程
小程序登录实践教程
小程序订阅消息实践教程
支付相关实践教程
广告接入实践教程
小游戏订阅消息实践教程
相关协议
数据处理和安全协议

定制分享能力

PDF
聚焦模式
字号
最后更新时间: 2026-03-22 10:12:36

添加自定义分享按钮

通过重写 MiniAppProxyImpl.getMoreItems,在胶囊控制面板中通过 MoreItemList.Builder.addCustomShareItem 添加自定义分享菜单。
/**
* 添加自定义分享项,目前使用在点击更多按钮、button 组件(open-type="share")呼起的 ActionSheet 中
*
* @param text 分享菜单标题
* @param drawableResId 图标资源id
* @param id 自定义分享项的id,[100, 200]区间之内的值, 该 id 会作为 shareTarget 传递给 ShareProxy,用来区分分享渠道
* @param shareKey 自定义分享项的key,需要与小程序定义一致
* @param contentDescription 自定义分享项的描述,用于无障碍访问
* @return 返回builder对象,用于链式调用
*/
public Builder addCustomShareItem(String text, int drawableResId, int id, String shareKey, String contentDescription)
示例代码:
private static final String SHARE_TWITTER = "twitter";
/**
* 返回胶囊更多面板的按钮,扩展按钮的ID需要设置为[100, 200]这个区间中的值,否则,添加无效
* 调用环境:子进程
*
* @param miniAppContext 小程序运行环境(小程序进程,非主进程)
* @param builder
* @return
*/
@Override
public ArrayList<MoreItem> getMoreItems(IMiniAppContext miniAppContext, MoreItemList.Builder builder) {
// 自行调整顺序。
builder.addCustomShareItem(getString(miniAppContext, R.string.applet_mini_proxy_impl_other2),
R.mipmap.mini_demo_about,
ShareProxyImpl.OTHER_MORE_ITEM_2,
SHARE_TWITTER, null)
.addCustomShareItem(getString(miniAppContext, R.string.applet_mini_proxy_impl_other3),
R.drawable.tcmpp_demo_share_whatsapp,
ShareProxyImpl.SHARE_TO_WHATSAPP,
ShareProxyImpl.SHARE_TO_WHATSAPP_KEY, null)

.addCustomShareItem(getString(miniAppContext, R.string.applet_mini_proxy_impl_other4),
R.drawable.tcmpp_demo_share_more,
ShareProxyImpl.SHARE_TO_MORE,
ShareProxyImpl.SHARE_TO_MORE_KEY, null);
return super.getMoreItems(miniAppContext, builder);
}
胶囊菜单效果如下:

share-button 菜单效果如下:

注意:
转发按钮通过小程序 button 组件设置 open-type="share" 即可实现。
默认显示全部 superapp 代理接口实现的自定义分享渠道和默认分享渠道。
小程序可通过 button 组件的 share-mode 指定分享渠道,share-mode 取值对应 MoreItem 对象的 shareKey 属性;小程序指定分享渠道后,只展示superapp 中与之对应的渠道。

小程序及小游戏分享逻辑

1. 通过 onShareAppMessage 监听用户点击分享按钮行为,并自定义分享内容。
1.1 小程序通过 Page.onShareAppMessage 来监听。
1.2 小游戏通过 wx.onShareAppMessage 来监听。
2. 通过 wx.showShareMenu 来控制分享菜单是否展示。
注意:
胶囊正常展示分享菜单有如下几个条件:
1. 必须实现 onShareAppMessage 方法来返回分享信息,不实现则不会展示分享菜单。
2. wx.showShareMenu 指定的分享渠道需要与自定义的分享菜单一致,其中小程序会默认展示所有分享渠道,小游戏则必须显式调用 wx.showShareMenu 来指定。

分享逻辑实现

Superapp 收到小程序内部返回的分享数据后,会通过 ShareProxy.share 将分享动作转发给 superapp, 开发者需实现 ShareProxy 代理,根据 ShareData 中的 shareTarget 自行处理分享内容,对接第三方分享平台。
@ProxyService(proxy = ShareProxy.class)
public class ShareProxyImpl extends BaseShareProxy {
/**
* 分享
*
* @param shareData 分享数据
*/
@Override
public void share(Activity activity, ShareData shareData) {
//todo share
}
}

图片分享逻辑实现

Superapp 开发人员可以通过 MiniAppProxy.getImageShareCustomInfo 接口自定义 wx.showShareImageMenu 中显示的分享列表元素。
通过返回 ShareImageCustomInfo 对象可实现标题与分享元素自定义
@Override
public ShareImageCustomInfo getImageShareCustomInfo(IMiniAppContext miniAppContext) {
//创建分享元素列表
ArrayList<ShareImageItem> items = new ArrayList<>();
//添加自定义分享元素1
items.add(new ShareImageItem(miniAppContext.getContext().getString(R.string.applet_mini_proxy_impl_favorite),
ContextCompat.getDrawable(miniAppContext.getContext(), R.drawable.mini_sdk_favorite), (context, path) -> Toast.makeText(context.getAttachedActivity(),
"custom image share: " + path, Toast.LENGTH_SHORT).show()));
//添加自定义分享元素2
items.add(new ShareImageItem("custom share",
ContextCompat.getDrawable(miniAppContext.getContext(), R.drawable.mini_sdk_favorite), ShareProxyImpl.OTHER_MORE_ITEM_2));
return new ShareImageCustomInfo(items);
}

//自定义分享元素类定义
public class ShareImageItem {
//元素标题
public String title;
//元素图标
public Drawable icon;
//元素点击事件回调
public ClickEvent clickEvent;
//元素事件targetId,点击事件会通过 ShareProxy.share来转发,不再调用 clickEvent
public Integer shareTarget;
}
显示效果:



帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈