跳到主要内容

接入指南

应用生命周期​

onActivityResult​

fun onActivityResult(activity: Activity, requestCode: Int, resultCode: Int, data: Intent?)

请求参数

PropertiesTypeRequiredDescription
activityActivitytrue当前 Activity 组件。
requestCodeInttrue启动 Activity 时使用的 requestCode。
resultCodeInttruesetResult() 返回的 resultCode。
dataIntent?false返回的 Intent,可为空;将生命周期参数原样传入。

示例代码

为确保 Combo SDK 能正确接收第三方 SDK(分享结果)的回调,必须在基类 Activity(BaseActivity)中实现 onActivityResult()。

Show Code
abstract class BaseActivity: AppCompatActivity() {
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
ComboSDK.onActivityResult(this, requestCode, resultCode, data)
}
}

share​

fun share(activity: Activity, options: ShareOptions, completionHandler: (ShareResult?, ComboSDKError?) -> Unit)

请求参数

PropertiesTypeRequiredDescription
activityActivitytrue当前 Activity。
optionsShareOptionstrue分享需要传入的参数集合。
ImageShareOptions、VideoShareOptions和LinkShareOptions都是从 ShareOptions 派生出来的类。需要根据具体业务场景实例化特定对象。
completionHandler(ShareResult?, ComboSDKError?) -> Unittrue处理分享结果的回调方法。

示例代码

以下展示三种互斥的参数构造方式。实际使用时保留其中一种 options,再调用 share。

Show Code
// 图片分享
val options = ImageShareOptions(
title = "Title",
imageUrl = imagePath,
hashtag = "MyHashtag",
target = ShareTarget.DOUYIN,
scene = ShareScene.DOUYIN_PUBLISH
)

// 链接分享
val options = LinkShareOptions(
title = "Title",
text = "Text",
linkUrl = linkUrl,
linkCoverUrl = coverImagePath,
target = ShareTarget.WEIXIN,
scene = ShareScene.WEIXIN_TIMELINE
)

// 视频分享
val options = VideoShareOptions(
title = "Title",
text = "Text",
videoUrl = videoPath,
videoCoverUrl = coverImagePath,
hashtag = "MyHashtag",
target = ShareTarget.DOUYIN,
scene = ShareScene.DOUYIN_PUBLISH
)

ComboSDK.share(activity, options) { result: ShareResult?, error: ComboSDKError? ->
if (error != null) {
Log.e("ComboSDK", """
Share Failed:
• Error: ${error.error}
• User Message: ${error.userMessage}
• Developer Message: ${error.developerMessage}
""".trimIndent())
return@share
}
Log.i("ComboSDK", "Share Success")
}

ImageShareOptions​

提示

不同社交平台支持的参数不同,例如 hashtag 仅在抖音平台支持。 详见分享规则说明。

PropertiesTypeRequiredDescription
titleStringfalse分享的标题。
textStringfalse分享的正文。
imageUrlStringtrue分享的图片地址。
hashtagStringfalse分享附带的话题标签。
targetStringtrue分享目标平台。
ShareTarget 包含 Combo SDK 支持的目标平台常量。
sceneStringfalse分享目标场景。
ShareScene 包含 Combo SDK 支持的场景常量。

LinkShareOptions​

PropertiesTypeRequiredDescription
titleStringfalse分享标题。
textStringfalse分享正文。
linkUrlStringtrue分享链接。
linkCoverUrlStringfalse分享链接的封面图链接。
targetStringtrue分享目标平台。
ShareTarget 包含 Combo SDK 支持的目标平台常量。
sceneStringfalse分享目标场景。
ShareScene 包含 Combo SDK 支持的场景常量。

VideoShareOptions​

提示

不同社交平台支持的参数不同,例如 hashtag 仅在抖音平台支持。 详见分享规则说明。

PropertiesTypeRequiredDescription
titleStringfalse分享标题。
textStringfalse分享正文。
videoUrlStringtrue视频链接。
videoCoverUrlStringfalse视频封面图链接。
hashtagStringfalse分享话题标签。
targetStringtrue分享目标平台。
ShareTarget 包含 Combo SDK 支持的目标平台常量。
sceneStringfalse分享目标场景。
ShareScene 包含 Combo SDK 支持的场景常量。

ShareTarget​

ShareTarget 类包含了一组表示支持的分享目标平台的字符串常量。

ShareTarget字符串值Android 常量字段iOS 常量字段
System(iOS/Android 系统内置分享)systemSYSTEMsystem
XiaoHongShu(小红书)agoraAGORAagora
Weixin(微信)weixinWEIXINweixin
Weibo(新浪微博)weiboWEIBOweibo
Douyin(抖音)douyinDOUYINdouyin
QQ(腾讯 QQ)qqQQqq

ShareScene​

ShareScene 类包含了一组表示支持的分享场景的字符串常量。

提示

只有当 target 为 weixin 时,微信相关的 scene 才生效。

只有当 target 为 douyin 时,抖音相关的 scene 才生效。

只有当 target 为 qq 时,QQ 相关的 scene 才生效。

ShareScene字符串值Android 常量字段iOS 常量字段
微信对话weixin_sessionWEIXIN_SESSIONweixinSession
微信朋友圈weixin_timelineWEIXIN_TIMELINEweixinTimeline
微信收藏weixin_favoriteWEIXIN_FAVORITEweixinFavorite
抖音编辑页douyin_editDOUYIN_EDITdouyinEdit
抖音发布页douyin_publishDOUYIN_PUBLISHdouyinPublish
抖音好友douyin_contactsDOUYIN_CONTACTSdouyinContacts
QQ 好友qqQQqq
QQ 空间qzoneQZONEqzone

ShareResult​

当前无公开字段,用于表示分享流程完成。

getAvailableShareTargets​

Combo SDK 针对不同媒体平台的分享功能是可选的,因此各项目支持的分享目标平台可能不同(系统分享默认支持)。

建议通过该接口获取项目当前支持的分享目标平台,再据此进行分享。

fun getAvailableShareTargets(): List<String>

返回值

List<String>

支持的分享目标集合,例如 ["system", "agora", "weixin", "weibo", "douyin", "qq"]。

示例代码

Show Code
val targets = ComboSDK.getAvailableShareTargets()