TapTap 分享开发指南
集成前准备
权限说明
- Android
该模块依赖权限如下:
| 权限 | 使用目的 | 权限申请时机 |
|---|---|---|
| 设备指定应用信息 | 获取已安装的 TapTap 客户端信息 | 用户每次使用该功能时会申请权限 |
同时该模块也会访问设备已安装的 Tap 客户端信息,所以接入 SDK 后将在应用 AndroidManifest.xml 中添加如下配置:
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<queries>
<package android:name="com.taptap" />
</queries>
SDK 获取
- Android
- iOS
在 app module 的 build.gradle 添加对应依赖:
dependencies {
implementation 'com.taptap.sdk:tap-core:4.9.3'
implementation 'com.taptap.sdk:tap-share:4.9.3'
}
远程依赖
- 在工程 Podfile 文件中对应模块下添加依赖:
pod 'TapTapSDK/Share', '~> 4.9.3'
- 执行
pod install下载对应依赖文件
本地文件依赖
TapTap 分享依赖于初始化模块,使用本地文件方式添加依赖时,需先参考集成指南 添加对应本地文件依赖项。
- 在 下载页 下载如下文件:
TapTapShareSDK.xcframework分享依赖库
- 在工程中添加
framework静态库,注意添加时选择 Embed 方式为 Do Not Embed
tip
由于 SDK 需判断当前设备是否安装 TapTap 客户端,开发者需在 Xcode 工程的 info.plist 文件 LSApplicationQueriesSchemes 字段中添加 taptap 参数
调起分享
- Android Java
- Android Kotlin
- iOS Swift
- iOS Objective-C
import com.taptap.sdk.share.TapTapShareBuilder;
import com.taptap.sdk.share.TapTapShareResult;
int resultCode = new TapTapShareBuilder()
.addTitle("title") // 分享标题
.addContents("content") // 分享内容
.addHashtagIds("hashtag ids") // 话题 Id 最多支持 5 个,多个话题 Id 以英文逗号,分割 例如:"hashtag1,hashtag2"
.addGroupLabelId("group ids") // 论坛标签 Id 最多支持 1 个
.addFailUrl("fail url") // 未安装 TapTap 应用时跳转链接,推荐使用 REP 生成的游戏详情页效果链接
.addFooterImageUrls(new ArrayList<Uri>(uri1, uri2)) // 可选,分享的图片,最多支持 9 张
.build()
.share(activity);
switch (resultCode){
case TapTapShareResult.SUCCESS: // 分享成功
case TapTapShareResult.ERROR_NOT_INSTALL: // 分享失败:未安装 TapTap 应用
default: // 分享失败:TapTap 应用不支持
}
import com.taptap.sdk.share.TapTapShareBuilder
import com.taptap.sdk.share.TapTapShareResult
val resultCode: Int = TapTapShareBuilder()
.addTitle(title) // 分享标题
.addContents(content) // 分享内容
.addHashtagIds(hashtag) // 话题 Id 最多支持 5 个,多个话题 Id 以英文逗号,分割 例如:"hashtag1,hashtag2"
.addGroupLabelId(group) // 论坛标签 Id 最多支持 1 个
.addFailUrl("fail url") // 未安装 TapTap 应用时跳转链接,推荐使用 REP 生成的游戏详情页效果链接
.addFooterImageUrls(picList) // 可选,分享的图片,最多支持 9 张
.build()
.share(this)
when (resultCode) {
TapTapShareResult.SUCCESS -> // 分享成功
TapTapShareResult.ERROR_NOT_INSTALL -> // 分享失败: 未安装 TapTap 应用
else -> // 分享失败: TapTap 应用不支持
}
import TapTapShareSDK
var images: [Data] = [] // 需要分享的图片数据
let image = UIImage(named: "avatar") // 获取图片数据
let imageData = image.pngData()
images.append(imageData)
let obj = TapTapShareObj(
title: "title", // 分享标题
contents: "content", // 分享内容
groupLabelId: "groupid", // 论坛标签 ID 最多支持 1 个
hashtagIds: "ids", // 话题 ID 最多支持 5 个,多个话题 Id 以英文逗号,分割 例如:"hashtag1,hashtag2"
footerImages: images, // 可选,最多支持 9 个,总大小未见苹果说明限制,但应尽量保持小
failUrl: "https://***", // 未安装 TapTap 应用时跳转链接,推荐使用 REP 生成的游戏详情页效果链接
backUrl: "gameUrl" // 返回游戏时的 URLScheme,应符合 ****://*** 格式
)
TapTapShare.share(obj) { result in
print("result: \(result)")
// result 对应值 0 :分享成功, -1 :未安装 Tap 客户端, 其他: Tap 应用不支持
}
#import "UIKit/UIKit.h"
#import "TapTapShareSDK/TapTapShareSDK-Swift.h"
// 可选,最多支持 9 张,总大小未见苹果说明限制,但应尽量保持小
NSMutableArray *imageDatas = [[NSMutableArray alloc] init];
UIImage *image = [UIImage imageNamed:@"avatar"];
NSData *data = UIImagePNGRepresentation(image);
[imageDatas addObject:data];
// groupLabelId 论坛标签 ID 最多支持 1 个
// hashtagIds 话题 ID 最多支持 5 个,多个话题 Id 以英文逗号,分割 例如:"hashtag1,hashtag2"
// backUrl 为返回游戏时的 URLScheme,应符合 ****://*** 格式
TapTapShareObj *obj = [[TapTapShareObj alloc] initWithTitle:@"分享标题" contents:@"分享内容" groupLabelId:@"论坛标签 ID" hashtagIds:@"HashTag 和 活动ID" footerImages:imageDatas failUrl:@"未安装 TapTap 应用时跳转链接,推荐使用 REP 生成的游戏详情页效果链接" backUrl:@"返回游戏时的 URLScheme"];
[TapTapShare share:obj completion:^(NSInteger result) {
// result 对应值 0 :分享成功, -1 :未安装 Tap 客户端, 其他: Tap 应用不支持
}];
测试
为了保证上线后,游戏对于用户是否正常使用 Tap 分享功能,请务必按照以下说明完成自测。
上传 APK
新应用需要上传测试的 APK 至开发者中心,并通过审核。已上架的游戏,需确保更新资料版本中的 APK 包名和已上架的 APK 包名保持一 致。
应用上线
针对已上架的游戏,开发者需确保更新资料版本中的包名和已上架的游戏包名保持一致,否则会导致玩家因包名不一致而更新失败。
针对新游戏,开发者需要在 TapTap 上线一个包含 APK 包并且通过审核(用于平台获取游戏包名,包名需与后续更新的包名保持一致)的商店资料版本,如果 APK 包当前无法对外,可将发布状态设置为「敬请期待」或「预约」。
开始测试
触发分享功能后正常状态是可以唤起 TapTap 应用的分享页面。