From 5b474b83eda60e890f6fa861bdf2d64be830dbac Mon Sep 17 00:00:00 2001 From: Dango <282919162@qq.com> Date: Fri, 13 Sep 2024 17:17:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=20Android=20Java=20?= =?UTF-8?q?=E5=86=85=E5=B5=8C=E5=8A=A8=E6=80=81=20=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=20(#1189)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cn/docs/sdk/_partials/languages.mdx | 91 +++++++++++++ cn/docs/sdk/embedded-moments/guide.mdx | 171 +++++++++++++++++++++++-- 2 files changed, 251 insertions(+), 11 deletions(-) diff --git a/cn/docs/sdk/_partials/languages.mdx b/cn/docs/sdk/_partials/languages.mdx index 3e95d0a60..ec3d0f1ef 100644 --- a/cn/docs/sdk/_partials/languages.mdx +++ b/cn/docs/sdk/_partials/languages.mdx @@ -38,6 +38,97 @@ namespace TapSDK.Core <> +```java +import com.taptap.sdk.core.TapTapLanguage; +import com.taptap.sdk.core.TapTapSdk; + +TapTapSdk.setPreferredLanguage(TapTapLanguage.AUTO); +``` + +支持如下语言: + +```java + /** + * 自动 + */ + AUTO("auto"), + + /** + * 简体中文 + */ + ZH_HANS("zh_CN"), + + /** + * 英语(美国) + */ + EN("en_US"), + + /** + * 繁体中文 + */ + ZH_HANT("zh_TW"), + + /** + * 日文 + */ + JA("ja_JP"), + + /** + * 韩文 + */ + KO("ko_KR"), + + /** + * 泰语 + */ + TH("th_TH"), + + /** + * 印尼语 + */ + ID("id_ID"), + + /** + * 德语 + */ + DE("de"), + + /** + * 西班牙语 + */ + ES("es_ES"), + + /** + * 法语 + */ + FR("fr"), + + /** + * 葡萄牙语 + */ + PT("pt_PT"), + + /** + * 俄语 + */ + RU("ru"), + + + /** + * 土耳其语 + */ + TR("tr"), + + /** + * 越南语 + */ + VI("vi_VN"); +``` + + + +<> + ```kotlin TapTapSdk.setPreferredLanguage(TapTapLanguage.AUTO) ``` diff --git a/cn/docs/sdk/embedded-moments/guide.mdx b/cn/docs/sdk/embedded-moments/guide.mdx index 4c3a95032..93182dea4 100644 --- a/cn/docs/sdk/embedded-moments/guide.mdx +++ b/cn/docs/sdk/embedded-moments/guide.mdx @@ -14,7 +14,7 @@ import v4SDKVersions from '/src/docComponents/v4SDKVersions'; ## 权限说明 - + <> @@ -45,6 +45,29 @@ import v4SDKVersions from '/src/docComponents/v4SDKVersions'; <> +该模块需要如下权限: + +| 权限 | 使用目的 | 权限申请时机 | +| ---------------------- | ---------------------- | ---------------------- | +| 网络权限 | 用于访问网络数据 | 用户首次使用该功能时会申请权限 | +| 获取网络状态 | 用于检测当前网络连接是否有效 | 用户首次使用该功能时会申请权限 | +| 读写存储权限 | 用于发布或下载动态页面内图片、视频 | 下载或使用本地图片发布动态时申请 | + +该模块将在应用中添加如下权限: + +```xml + + + + + +``` + + + +<> + 使用内嵌动态服务需要相册、相机权限,所以开发者需在工程的 `info.plist` 配置相关权限并**替换授权文案**: ```xml @@ -72,7 +95,7 @@ import v4SDKVersions from '/src/docComponents/v4SDKVersions'; 完成 SDK 获取,然后在此基础上可以通过 [下载](/tap-download) 获得 TapSDK,添加 `TapMoment` 模块: - + <> +<> +1. 项目根目录的 build.gradle 添加仓库地址: + + +{ +`allprojects { + repositories { + google() + mavenCentral() + } +}` +} + + + +2. app module 的 build.gradle 添加对应依赖: + +内嵌动态模块依赖于 `TapLogin`, 需额外添加 `TapLogin` 模块依赖。 + + +{ +`dependencies { + implementation 'com.taptap.sdk:tap-core:${v4SDKVersions.taptap.android}' + implementation 'com.taptap.sdk:tap-login:${v4SDKVersions.taptap.android}' + implementation 'com.taptap.sdk:tap-moment:${v4SDKVersions.taptap.android}' +}` +} + + + + + <> iOS 提供通过添加 cocosPod 远程依赖和使用本地文件导入两种集成方式,推荐使用远程依赖方式。 @@ -182,7 +237,7 @@ iOS 提供通过添加 cocosPod 远程依赖和使用本地文件导入两种集 ## SDK 初始化 - + <> @@ -203,6 +258,36 @@ TapTapSDK.Init(coreOptions); `TapTapSdkOptions` 详细参数见 [入门指南#快速开始](/sdk/access/quickstart/#初始化) +```java +import com.taptap.sdk.core.TapTapLanguage; +import com.taptap.sdk.core.TapTapRegion; +import com.taptap.sdk.core.TapTapSdk; +import com.taptap.sdk.core.TapTapSdkOptions; + +// 必选配置 +TapTapSdkOptions tapSdkOptions = new TapTapSdkOptions( + "client_id", // 游戏 Client ID + "client_token", // 游戏 Client Token + TapTapRegion.CN, // 游戏可玩区域: [TapTapRegion.CN]=国内 [TapTapRegion.GLOBAL]=海外 + "channel", // 分包渠道名称 , 可为空 + "gameVersion", // 游戏版本号 + false, // 是否自动上报 GooglePlay 内购支付成功事件 仅 [TapTapRegion.GLOBAL] 生效 + false, // 自定义字段是否能覆盖内置字段 + null, // 自定义属性,启动首个预置事件(device_login)会带上这些属性 + "oaidCert", // OAID 证书内容, 用于上报 OAID 仅 [TapTapRegion.CN] 生效 + true, // 是否开启 log,建议 Debug 开启,Release 关闭,默认关闭 log + TapTapLanguage.AUTO // TapSDK 首选语言 默认为 TapTapLanguage.AUTO +); + +TapTapSdk.init(context, tapSdkOptions); +``` + + + +<> + +`TapTapSdkOptions` 详细参数见 [入门指南#快速开始](/sdk/access/quickstart/#初始化) + ```kotlin import com.taptap.sdk.core.TapTapSdk import com.taptap.sdk.core.TapTapSdkOptions @@ -248,7 +333,7 @@ TapTapSDK.initWith(options) 设置回调以获取动态的状态变化。 - + ```cs using TapSDK.Moment; @@ -262,6 +347,19 @@ TapTapMoment.SetCallback((code, msg) => TapTapMoment.SetCallback(null); ``` +```java +import com.taptap.sdk.moment.TapTapMoment; + +TapTapMoment.setCallback(new TapTapMoment.TapTapMomentCallback() { + @Override + public void onCallback(int code, @Nullable String msg) { + // 根据 code 处理事件 + } +}); + +TapTapMoment.setCallback(null); +``` + ```kotlin import com.taptap.sdk.moment.TapTapMoment @@ -314,7 +412,7 @@ TapTapMoment.setDelegate(self) 定时调用获取消息通知的接口,有新信息时可以在 TapTap 动态入口显示小红点,提醒玩家查看新动态。 - + ```cs using TapSDK.Moment; @@ -322,6 +420,12 @@ using TapSDK.Moment; TapTapMoment.FetchNotification(); ``` +```java +import com.taptap.sdk.moment.TapTapMoment; + +TapTapMoment.fetchNotification(); +``` + ```kotlin import com.taptap.sdk.moment.TapTapMoment @@ -352,7 +456,7 @@ TapTapMoment.fetchNotification() 在游戏中显示 TapTap 动态页面,玩家可以查看及发布动态。 - + ```cs using TapSDK.Moment; @@ -360,6 +464,11 @@ using TapSDK.Moment; TapTapMoment.open(); ``` +```java +import com.taptap.sdk.moment.TapTapMoment; + +TapTapMoment.open(); +``` ```kotlin import com.taptap.sdk.moment.TapTapMoment @@ -394,7 +503,7 @@ TapTapMoment.open() 开发者可以[结合游戏场景绘制入口](/sdk/embedded-moments/features/#场景化入口),玩家打开入口跳转到指定的页面。使用前需要在开发者中心后台完成[场景化入口配置](/sdk/embedded-moments/features/#场景化入口配置)。 - + <> ```cs @@ -408,6 +517,17 @@ TapTapMoment.OpenScene(sceneId); <> +```java +import com.taptap.sdk.moment.TapTapMoment; + +// sceneId 为在开发者中心后台创建场景化入口后生成的「入口 ID」 +TapTapMoment.openScene(sceneId); +``` + + + +<> + ```kotlin import com.taptap.sdk.moment.TapTapMoment @@ -456,7 +576,7 @@ TapTapMoment.openScene(sceneId) 比如,玩家排位等待结束,准备进入对局时提示玩家关闭动态页面,玩家确认后关闭,此时调用如下接口: - + ```cs using TapSDK.Moment; @@ -464,6 +584,12 @@ using TapSDK.Moment; TapTapMoment.CloseWithTitle("提示", "匹配成功,进入游戏"); ``` +```java +import com.taptap.sdk.moment.TapTapMoment; + +TapTapMoment.closeWithTitle("提示", "匹配成功,进入游戏"); +``` + ```kotlin import com.taptap.sdk.moment.TapTapMoment @@ -487,7 +613,7 @@ TapTapMoment.close(withTitle: "标题", content: "匹配成功,是否离开动 如果需要直接关闭动态窗口,不弹出二次确认框,调用如下接口: - + ```cs using TapSDK.Moment; @@ -495,6 +621,12 @@ using TapSDK.Moment; TapTapMoment.Close(); ``` +```java +import com.taptap.sdk.moment.TapTapMoment; + +TapTapMoment.close(); +``` + ```kotlin import com.taptap.sdk.moment.TapTapMoment @@ -521,7 +653,7 @@ TapTapMoment.close() 不过,SDK 也提供了发布图文动态的 API,以支持「一键发动态」等需求。 图文动态包括单张或多张图片及相应的文字内容。 - + ```cs using TapSDK.Moment; @@ -530,6 +662,23 @@ PublishMetaData publishMetaData = new PublishMetaData(content: "动态文字内 TapTapMoment.Publish(publishMetaData) ``` +```java +import com.taptap.sdk.moment.TapTapMoment; +import com.taptap.sdk.moment.model.PublishMetaData; + +List imagePaths = new ArrayList<>(); +imagePaths.add("图片路径1"); +imagePaths.add("图片路径2"); +PublishMetaData publishMetaData = new PublishMetaData( + "动态文字内容", + new ArrayList(), + imagePaths +); + +TapTapMoment.publish(publishMetaData); + +``` + ```kotlin import com.taptap.sdk.moment.TapTapMoment @@ -573,4 +722,4 @@ TapTapMoment.publish(postData) 内嵌动态支持设置语言: - +