接入指南
应用生命周期
- Android
- iOS
onActivityResult
fun onActivityResult(activity: Activity, requestCode: Int, resultCode: Int, data: Intent?)
请求参数
| Properties | Type | Required | Description |
|---|---|---|---|
activity | Activity | true | 当前 Activity 组件。 |
requestCode | Int | true | 启动 Activity 时使用的 requestCode。 |
resultCode | Int | true | setResult() 返回的 resultCode。 |
data | Intent? | 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)
}
}
applicationDidBecomeActive
用户手动返回应用时,处理分享回调。
static func applicationDidBecomeActive(_ application: UIApplication)
请求参数
| Properties | Type | Required | Description |
|---|---|---|---|
application | UIApplication | true | 当前的 UIApplication 实例。 |
示例代码
Show Code
- (void)applicationDidBecomeActive:(UIApplication *)application {
[ComboSDK applicationDidBecomeActive:application];
}
application(:continue:) {#application--continue}
处理 Universal Link 跳转时的数据解析。
static func application(_ application: UIApplication, continue userActivity: NSUserActivity)
请求参数
| Properties | Type | Required | Description |
|---|---|---|---|
application | UIApplication | true | 当前 UIApplication 实例。 |
userActivity | NSUserActivity | true | 描述需要继续处理的用户活动对象。 |
示例代码
Show Code
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *_Nullable))restorationHandler {
[ComboSDK application:application continue:userActivity];
return YES;
}
share
- Android
- iOS
fun share(activity: Activity, options: ShareOptions, completionHandler: (ShareResult?, ComboSDKError?) -> Unit)
请求参数
| Properties | Type | Required | Description |
|---|---|---|---|
activity | Activity | true | 当前 Activity。 |
options | ShareOptions | true | 分享需要传入的参数集合。ImageShareOptions、VideoShareOptions和LinkShareOptions都是从 ShareOptions 派生出来的类。需要根据具体业务场景实例化特定对象。 |
completionHandler | (ShareResult?, ComboSDKError?) -> Unit | true | 处理分享结果的回调方法。 |
示例代码
以下展示三种互斥的参数构造方式。实际使用时保留其中一种 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")
}
static func share(controller: UIViewController, options: ShareOptions, completionHandler: @escaping (ShareResult?, ComboSDKError?) -> Void)
请求参数
| Properties | Type | Required | Description |
|---|---|---|---|
controller | UIViewController | true | 当前视图控制器。 |
options | ShareOptions | true | 分享需要传入的参数集合。ImageShareOptions、VideoShareOptions和LinkShareOptions都是从 ShareOptions 派生出来的类。需要根据具体业务场景实例化特定对象。 |
completionHandler | (ShareResult?, ComboSDKError?) -> Void | true | 处理分享结果的回调方法。 |
示例代码
以下展示三种互斥的参数构造方式。实际使用时保留其中一种 options,再调用 share。
Show Code
// 图片分享
ImageShareOptions *options = [[ImageShareOptions alloc] initWithTitle:@"Title"
text:nil
imageUrl:imagePath
hashtag:@"MyHashtag"
target:ShareTarget.douyin
scene:ShareScene.douyinPublish];
// 链接分享
LinkShareOptions *options = [[LinkShareOptions alloc] initWithTitle:@"Title"
text:@"Text"
linkUrl:linkUrl
linkCoverUrl:coverPath
target:ShareTarget.weixin
scene:ShareScene.weixinTimeline];
// 视频分享
VideoShareOptions *options = [[VideoShareOptions alloc] initWithTitle:@"Title"
text:@"Text"
videoUrl:videoPath
videoCoverUrl:coverImagePath
hashtag:@"MyHashtag"
target:ShareTarget.douyin
scene:ShareScene.douyinPublish];
[ComboSDK shareWithController:self options: options completionHandler:^(ShareResult * _Nullable result, ComboSDKError * _Nullable error) {
if (error) {
NSLog(@"ComboSDK Share Failed:\n Error: %@\n User Message: %@\n Developer Message: %@",
error.error, error.userMessage, error.developerMessage);
return;
}
NSLog(@"Share Success");
}];
ImageShareOptions
提示
不同社交平台支持的参数不同,例如 hashtag 仅在抖音平台支持。
详见分享规则说明。
| Properties | Type | Required | Description |
|---|---|---|---|
title | String | false | 分享的标题。 |
text | String | false | 分享的正文。 |
imageUrl | String | true | 分享的图片地址。 |
hashtag | String | false | 分享附带的话题标签。 |
target | String | true | 分享目标平台。ShareTarget 包含 Combo SDK 支持的目标平台常量。 |
scene | String | false | 分享目标场景。ShareScene 包含 Combo SDK 支持的场景常量。 |
LinkShareOptions
| Properties | Type | Required | Description |
|---|---|---|---|
title | String | false | 分享标题。 |
text | String | false | 分享正文。 |
linkUrl | String | true | 分享链接。 |
linkCoverUrl | String | false | 分享链接的封面图链接。 |
target | String | true | 分享目标平台。ShareTarget 包含 Combo SDK 支持的目标平台常量。 |
scene | String | false | 分享目标场景。ShareScene 包含 Combo SDK 支持的场景常量。 |
VideoShareOptions
提示
不同社交平台支持的参数不同,例如 hashtag 仅在抖音平台支持。
详见分享规则说明。
| Properties | Type | Required | Description |
|---|---|---|---|
title | String | false | 分享标题。 |
text | String | false | 分享正文。 |
videoUrl | String | true | 视频链接。 |
videoCoverUrl | String | false | 视频封面图链接。 |
hashtag | String | false | 分享话题标签。 |
target | String | true | 分享目标平台。ShareTarget 包含 Combo SDK 支持的目标平台常量。 |
scene | String | false | 分享目标场景。ShareScene 包含 Combo SDK 支持的场景常量。 |
ShareTarget
ShareTarget 类包含了一组表示支持的分享目标平台的字符串常量。
ShareTarget | 字符串值 | Android 常量字段 | iOS 常量字段 |
|---|---|---|---|
| System(iOS/Android 系统内置分享) | system | SYSTEM | system |
| XiaoHongShu(小红书) | agora | AGORA | agora |
| Weixin(微信) | weixin | WEIXIN | weixin |
| Weibo(新浪微博) | weibo | WEIBO | weibo |
| Douyin(抖音) | douyin | DOUYIN | douyin |
| QQ(腾讯 QQ) | qq | QQ | qq |
ShareScene
ShareScene 类包含了一组表示支持的分享场景的字符串常量。
提示
只有当 target 为 weixin 时,微信相关的 scene 才生效。
只有当 target 为 douyin 时,抖音相关的 scene 才生效。
只有当 target 为 qq 时,QQ 相关的 scene 才生效。
ShareScene | 字符串值 | Android 常量字段 | iOS 常量字段 |
|---|---|---|---|
| 微信对话 | weixin_session | WEIXIN_SESSION | weixinSession |
| 微信朋友圈 | weixin_timeline | WEIXIN_TIMELINE | weixinTimeline |
| 微信收藏 | weixin_favorite | WEIXIN_FAVORITE | weixinFavorite |
| 抖音编辑页 | douyin_edit | DOUYIN_EDIT | douyinEdit |
| 抖音发布页 | douyin_publish | DOUYIN_PUBLISH | douyinPublish |
| 抖音好友 | douyin_contacts | DOUYIN_CONTACTS | douyinContacts |
| QQ 好友 | qq | QQ | qq |
| QQ 空间 | qzone | QZONE | qzone |
ShareResult
当前无公开字段,用于表示分享流程完成。
getAvailableShareTargets
Combo SDK 针对不同媒体平台的分享功能是可选的,因此各项目支持的分享目标平台可能不同(系统分享默认支持)。
建议通过该接口获取项目当前支持的分享目标平台,再据此进行分享。