tencent cloud

定制分享能力

PDF
聚焦模式
字号
最后更新时间: 2026-01-29 00:08:49

默认分享渠道配置

通过重写 defaultSharingChannels 方法,可以自定义默认的分享渠道。
API 说明:
// 点击胶囊按钮后的默认分享渠道-MAShareTarget 中的 MAShareTargetQQ、MAShareTargetQzone、MAShareTargetWXFriends、MAShareTargetWXMoment(小程序配置的必须是 superapp 的子集)
- (NSArray<NSNumber *> *)defaultSharingChannels;
示例代码:
- (NSArray<NSNumber *> *)defaultSharingChannels{
return @[@(MAShareTargetQQ),@(MAShareTargetWXFriends),@(MAShareTargetWXMoment)];
}

添加自定义分享按钮

通过重写 customizedConfigForShare 方法,可以自定义分享途径、决定展示顺序。
API 说明:

// Superapp 可以自定义分享途径、决定展示顺序,目前使用在点击更多按钮、button 组件(open-type="share")呼起的 ActionSheet 中
// 1、默认渠道:QQ 好友、QQ 空间、微信、朋友圈(具体 type 参见 MAUIDelegateShareViewType),由开发商决定,superapp 只能更改展示顺序
// 2、自定义分享渠道:Superapp 自定义(type 填 MAUIDelegateShareViewTypeCustomizedShare,自定义 MAShareTarget,建议大于100,在小程序页面中 onShareAppMessage 回传分享内容,统一走 shareMessageWithModel 由 superapp 根据 ShareTarget 来分别处理)
// 3、自定义事件:Superapp 自定义(type 填 MAUIDelegateShareViewTypeCustomizedAction)
// 以上三种渠道展示顺序支持混排
- (NSArray<TMASheetItemInfo *> *)customizedConfigForShare;
示例代码:

- (NSArray<TMASheetItemInfo *> *)customizedConfigForShare {
NSMutableArray *arrays = [[NSMutableArray alloc] init];
TMASheetItemInfo *item1 = [[TMASheetItemInfo alloc] initWithTitle:@"More sharing" type:MAUIDelegateShareViewTypeCustomizedShare shareTarget:100 shareKey:@"my"];
item1.icon = [UIImage imageNamed:@"icon_moreOperation_shareChat"];
item1.shareTarget = 10001;
[arrays addObject:item1];

TMASheetItemInfo *item2 = [[TMASheetItemInfo alloc] initWithTitle:@"click" type:MAUIDelegateShareViewTypeCustomizedAction action:^(TMASheetActionParams * _Nullable params) {
NSLog(@"click 点击");
}];
item2.icon = [UIImage imageNamed:@"icon_moreOperation_collect"];
[arrays addObject:item2];
return arrays;

}
效果如下:

转发按钮效果如下:

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

小程序内部逻辑

小程序内部通过 onShareAppMessage 监听用户单击分享类按钮的行为,并自定义转发内容。

分享逻辑实现

Superapp 收到小程序内部返回的分享数据后,触发 shareMessageWithModel 执行最终的分享动作,开发者可以根据 shareTarget 等数据,自行处理需要分享的内容,对接三方分享平台。

/**
* @brief 分享的接口 - shared interface
* @param shareModel 分享model - share model
* @param appInfo 小程序appinfo - Mini program appinfo
* @param completionBlock 回调 - callback
*/
- (void)shareMessageWithModel:(TMAShareModel *_Nonnull)shareModel
appInfo:(TMFMiniAppInfo *_Nonnull)appInfo
completionBlock:(nullable void(^)(NSError * _Nullable error))completionBlock;

图片分享逻辑实现

Superapp 开发人员也可以通过 customizedConfigForImageShare 接口自定义 wx.showShareImageMenu 中显示的分享列表。
MAUIDelegateShareViewTypeCustomizedShare 类型的分享条目由代理接口 shareMessageWithModel:appInfo:completionBlock 统一处理。
MAUIDelegateShareViewTypeCustomizedAction 类型的分享条目由 superapp 在添加时定义执行动作。
示例代码:
- (NSArray<TMASheetItemInfo *> *)customizedConfigForImageShare {
TMASheetItemInfo *item = [[TMASheetItemInfo alloc] initWithTitle:@"Send to friend" type:MAUIDelegateShareViewTypeCustomizedShare shareTarget:200 shareKey:@"my"];
TMASheetItemInfo *item2 = [[TMASheetItemInfo alloc] initWithTitle:@"test" type:MAUIDelegateShareViewTypeCustomizedAction shareTarget:201];
item2.action = ^(TMASheetActionParams * _Nullable params0) {
NSLog(@"");
};
return @[item,item2];
}
显示效果:


帮助和支持

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

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

文档反馈