TapTap 分享开发指南
权限说明
- Android Java
- Android Kotlin
该模块依赖权限如下:
权限 | 使用目的 | 权限申请时机 |
---|---|---|
设备指定应用信息 | 获取已安装的 TapTap 客户端信息 | 用户每次使用该功能时会申请权限 |
同时该模块也会访问设备已安装的 Tap 客户端信息,所以接入 SDK 后将在应用 AndroidManifest.xml
中添加如下配置:
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<queries>
<package android:name="com.taptap" />
</queries>
该模块依赖权限如下:
权限 | 使用目的 | 权限申请时机 |
---|---|---|
设备指定应用信息 | 获取已安装的 TapTap 客户端信息 | 用户每次使用该功能时会申请权限 |
同时该模块也会访问设备已安装的 Tap 客户端信息,所以接入 SDK 后将在应用 AndroidManifest.xml
中添加如下配置:
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<queries>
<package android:name="com.taptap" />
</queries>
集成前准备
使用Tap分享功能前提需要通过 TapTap 开发者中心 > 商店 > 游戏资料 > 商店资料 中已经上传 APK, 发布设置为 立即上线 并通过 审核(开发者包如果暂时不想对外,发布状态选 敬请期待 或者 预约)。
SDK 获取
- Android Java
- Android Kotlin
- iOS
- 项目根目录的 build.gradle 添加仓库地址:
allprojects {
repositories {
google()
mavenCentral()
}
}
- app module 的 build.gradle 添加对应依赖:
dependencies {
implementation 'com.taptap.sdk:tap-core:4.5.0'
implementation 'com.taptap.sdk:tap-share:4.5.0'
}
- 项目根目录的 build.gradle 添加仓库地址:
allprojects {
repositories {
google()
mavenCentral()
}
}
- app module 的 build.gradle 添加对应依赖:
dependencies {
implementation 'com.taptap.sdk:tap-core:4.5.0'
implementation 'com.taptap.sdk:tap-share:4.5.0'
}
添加依赖
iOS 提供通过添加 cocoaPods 远程依赖和使用本地文件导入两种集成方式,推荐使用远程依赖方式。
远程依赖
- 在工程 Podfile 文件中对应模块下添加依赖:
pod 'TapTapShareSDK', '~> 4.5.0'
- 执行
pod install
下载对应依赖文件
本地文件依赖
TapTap 分享依赖于初始化模块,使用本地文件方式添加依赖时,需先参考 TapSDK 集成 添加对应本地文件依赖项。
- 在 下载页 下载如下文件:
TapTapShareSDK.xcframework
分享依赖库
- 在工程中添加
framework
静态库,注意添加时选择 Embed 方式为 Do Not Embed
初始化
TapSDK 初始化
- Android Java
- Android Kotlin
- iOS
TapTapSdkOptions
详细参数见 入门指南#快速开始
import com.taptap.sdk.core.TapTapRegion;
import com.taptap.sdk.core.TapTapSdk;
import com.taptap.sdk.core.TapTapSdkOptions;
/* 必选配置 */
// 开发者中心对应 Client ID
String clientId = "";
// 开发者中心对应 Client Token
String clientToken = "";
// 是否开启 log,建议 Debug 开启,Release 关闭,默认关闭 log
boolean enableLog = BuildConfig.DEBUG;
TapTapSdkOptions tapSdkOptions = new TapTapSdkOptions(
clientId, // 游戏 Client ID
clientToken, // 游戏 Client Token
TapTapRegion.CN // 游戏可玩区域: [TapTapRegion.CN]=国内 [TapTapRegion.GLOBAL]=海外
);
tapSdkOptions.setEnableLog(enableLog);
// 初始化 TapSDK
TapTapSdk.init(context, tapSdkOptions);
TapTapSdkOptions
详细参数见 入门指南#快速开始
import com.taptap.sdk.core.TapTapSdk
import com.taptap.sdk.core.TapTapSdkOptions
import com.taptap.sdk.core.TapTapRegion
import com.taptap.sdk.core.TapTapLanguage
TapTapSdk.init(
context = context,
sdkOptions = TapTapSdkOptions(
clientId = clientId,
clientToken = clientToken,
region = TapTapRegion.CN,
preferredLanguage = TapTapLanguage.ZH_HANS,
enableLog = false
),
)
TapTapSdkOptions
详细参数见 入门指南#快速开始
import TapTapCoreSDK
// 核心配置项
let options = TapTapSdkOptions()
options.clientId = "your_client_id" // 必须,开发者中心对应 Client ID
options.clientToken = "your_client_token" // 必须,开发者中心对应 Client Token
options.region = .CN // .CN:中国大陆,.overseas:其他国家或地区
options.enableLog = enableLog.selectedSegmentIndex == 0 // 是否开启 log,建议 Debug 开启,Release 关闭,默认关闭 log
options.preferredLanguage = TapLanguageType.auto // 语言设置,默认跟随系统,当系统语言不支持时,国内为中文,海外为英文
// 初始化 SDK
TapTapSDK.initWith(options)
调起分享
- Android Java
- Android Kotlin
- iOS
import com.taptap.sdk.share.TapTapShareBuilder;
import com.taptap.sdk.share.TapTapShareCode;
int resultCode = new TapTapShareBuilder()
.addTitle("title") // 分享标题
.addContents("content") // 分享内容
.addHashtagIds("hashtag ids") // HashTag 和活动 Id
.addGroupLabelId("group ids") // 论坛标签 Id
.addFooterImageUrls(new ArrayList<Uri>(uri1, uri2)) // 分享的图片
.build()
.share(activity);
switch (resultCode){
case TapTapShareCode.Success_Code: // 分享成功
case TapTapShareCode.Error_NotInstall: // 分享失败:未安装 TapTap 应用
default: // 分享失败:TapTap 应用不支持
}
import com.taptap.sdk.share.TapTapShareBuilder
import com.taptap.sdk.share.TapTapShareCode
val resultCode: Int = TapTapShareBuilder()
.addTitle(title) // 分享标题
.addContents(content) // 分享内容
.addHashtagIds(hashtag) // HashTag 和活动 Id
.addGroupLabelId(group) // 论坛标签 Id
.addFailUrl("fail url") // 未安装 TapTap 应用时跳转链接
.addFooterImageUrls(picList) // 分享的图片
.build()
.share(this)
when (resultCode) {
TapTapShareCode.Success_Code -> // 分享成功
TapTapShareCode.Error_NotInstall -> // 分享失败: 未安装 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
hashtagIds: "ids", // HashTag 和 活动ID
footerImages: images, // 可选,最多支持9个,总大小未见苹果说明限制,但应尽量保持小
failUrl: "https://***", // 未安装 TapTap 应用时跳转链接
backUrl: "gameUrl" // 返回游戏时的 URLScheme
)
TapTapShare.share(obj) { result in
print("result: \(result)")
// result 对应值 0 :分享成功, -1 :未安装 Tap 客户端, 其他: Tap 应用不支持
}
测试
为了保证上线后,游戏对于用户是否正常使用 Tap 分享功能,请务必按照以下说明完成自测。
上传 APK
新应用需要上传测试的 APK 至开发者中心,并通过审核。已上架的游戏,需确保更新资料版本中的 APK 包名和已上架的 APK 包名保持一致。
应用上线
针对已上架的游戏,开发者需确保更新资料版本中的包名和已上架的游戏包名保持一致,否则会导致玩家因包名不一致而更新失败。
针对新游戏,开发者需要在 TapTap 上线一个包含 APK 包并且通过审核(用于平台获取游戏包名,包名需与后续更新的包名保持一致)的商店资料版本,如果 APK 包当前无法对外,可将发布状态设置为「敬请期待」或「预约」。
开始测试
触发分享功能后正常状态是可以唤起 TapTap 应用的分享页面。