跳到主要内容
版本:v3

悬浮窗开发指南

本文介绍如何在游戏中加入 TapTap 悬浮窗。使用悬浮窗功能需依赖 TapTap 登录(TapLogin)以及 TapTap 内嵌动态功能(TapMoment)。

环境要求

  • TapSDK 3.21.0 及以上版本
  • Unity 2019.4 或更高版本
  • iOS 11 或更高版本,Xcode 版本 14.1 或更高版本
  • Android 5.0(API level 21)或更高版本

权限说明

集成前准备

  1. 参考 准备工作 创建应用、开启悬浮窗相应设置;

SDK 获取

请先参考 TapTap 登录内嵌动态完成 SDK 获取,然后在此基础上可以通过 下载 获得 TapSDK,添加 TapConnect 模块:

SDK 可以通过 Unity Package Manager 导入或手动导入,二者任选其一。请根据项目需要选择。

方法一:使用 Unity Package Manager

从 3.29.1 版本开始, SDK 修改 JSON 解析库为 Newtonsoft-json,如果当前工程已接入该依赖库,则不需额外处理,否则需在 Packages/manifest.json 添加如下依赖:

"com.unity.nuget.newtonsoft-json":"3.2.1"
NPMJS 安装

从 3.25.0 版本开始,TapSDK 支持了 NPMJS 安装,优势是只需要配置版本号,并且支持嵌套依赖。

在项目的 Packages/manifest.json 文件中添加以下依赖:

"dependencies":{
"com.taptap.tds.connect":"3.29.4",
}

但需要注意的是,要在 Packages/manifest.jsondependencies 同级下声明 scopedRegistries

"scopedRegistries": [
{
"name": "NPMJS",
"url": "https://registry.npmjs.org/",
"scopes": ["com.tapsdk", "com.taptap", "com.leancloud"]
}
]

GitHub 安装

在项目的 Packages/manifest.json 文件中添加以下依赖:

"dependencies":{
"com.taptap.tds.login":"https://github.com/TapTap/TapLogin-Unity.git#3.29.4",
"com.taptap.tds.common":"https://github.com/TapTap/TapCommon-Unity.git#3.29.4",
"com.taptap.tds.connect":"https://github.com/TapTap/TapConnect-Unity.git#3.29.4",
"com.taptap.tds.moment":"https://github.com/TapTap/TapMoment-Unity.git#3.29.4",
}

在 Unity 顶部菜单中选择 Window > Package Manager 可查看已经安装在项目中的包。

方法二:手动导入

  1. 下载页 找到 TapSDK Unity 下载地址,下载 TapSDK-UnityPackage.zip

  2. 在 Unity 项目中依次转到 Assets > Import Packages > Custom Packages,从解压后的 TapSDK-UnityPackage.zip 中,选择希望在游戏中使用的 TapSDK 包导入,其中:

    • TapTap_Common.unitypackage TapSDK 基础库,必选
    • TapTap_Login.unitypackage TapTap 登录,必选
    • TapTap_Connect.unitypackage TapTap 悬浮窗,必选
    • TapTap_Moment.unitypackage TapTap 动态,必选
  3. 如果当前项目已集成 Newtonsoft.Json 依赖,则忽略该步骤,否则在 NuGet.org Newtonsoft.Json 页面中通过点击右侧 「Download package」 下载库文件,并将下载的文件后缀从.nupkg 修改为 .zip,同时解压该文件并复制内部的 Newtonsoft.Json.dll 文件拷贝到工程 AssetsPlugins 目录下,另外为了避免导出 IL2CPP 平台时删除必要数据,需在 Assets 目录下创建 link.xml 文件(如果已有该文件,则添加如下内容),其内容如下:

<linker>
<assembly fullname="System.Core">
<type fullname="System.Linq.Expressions.Interpreter.LightLambda" preserve="all" />
</assembly>
</linker>

初始化

信息

以下两种初始化方式任选其一。

TapSDK 初始化

如果你已经完成内建账户系统 Tap 登录的初始化,这里只需要引入悬浮窗模块,不需要其他额外处理。

悬浮窗单独初始化

如果游戏不通过上面提供的 TapBootstrap 方法初始化 TapSDK,悬浮窗可以单独初始化,因为悬浮窗依赖单纯 Tap 认证和内嵌动态,

提示

单独初始化悬浮窗需要优先完成单纯 TapTap 认证内嵌动态 的初始化动作。关于单纯 TapTap 认证初始化参考,关于内嵌动态初始化参考

下面是单独初始化悬浮窗的示例代码:

using TapTap.Connect; // 命名空间

TapConnect.Init("your_client_id", "your_client_token", (bool)isCN);

参数说明

  • client_idclient_token 信息可在 开发者中心 > 你的游戏 > 游戏服务 > 应用配置 查看, isCN 表示是否为中国大陆地区的应用。

设置悬浮窗入口显示隐藏

有时开发者希望在某些场景下直接控制悬浮窗入口的显示隐藏,比如仅在部分场景显示悬浮窗入口,这时可以调用下面的接口:

TapConnect.SetEntryVisible(bool visible)

国际化

悬浮窗支持设置语言:

TapCommon.SetLanguage(TapLanguage.AUTO);

支持如下语言:

namespace TapTap.Common
{
public enum TapLanguage
{
AUTO = 0, // 自动
ZH_HANS = 1, // 简体中文
EN = 2, // 英文
ZH_HANT = 3, // 繁体中文
JA = 4, // 日文
KO = 5, // 韩文
TH = 6, // 泰文
ID = 7, // 印尼语
DE = 8, // 德语
ES = 9, // 西班牙语
FR = 10, // 法语
PT = 11, // 葡萄牙语
RU = 12, // 俄语
TR = 13, // 土耳其语
VI = 14, // 越南语
}
}

「自动」会尝试根据系统语言设置语言,如果系统语言不在上述支持的语言之中,那么会根据 SDK 初始化时配置的区域设置语言。 区域为中国大陆时会设置为简体中文,否则会设置为英文。