Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add share&review docs #1211

Merged
merged 1 commit into from
Oct 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions cn/docs/sdk/review/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"label": "TapTap 评价",
"collapsed": true,
"position": 3
}
36 changes: 36 additions & 0 deletions cn/docs/sdk/review/features.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
title: 评价功能介绍
sidebar_label: 功能介绍
sidebar_position: 1
---

评价功能支持游戏调起 TapTap 的评价编辑器,帮助用户快捷发布对本游戏的评价。

![](https://img.tapimg.com/market/images/6691ae30aa3097522d06570edc53d1a2.png)

## 服务优势
- 快速积累真实评价
- 获得真实玩家评分评价,提高站内热度,收集玩家反馈,吸引潜在用户。
- 流程短,效率高
- 一键直接调起游戏评价编辑,免去玩家多步操作。

## 用户使用流程
1. 玩家在游戏中点击「去 TapTap 评价」按钮(该按钮及相关UI由开发者自行绘制)。
2. 有 TapTap 客户端则调起客户端评价编辑页;无客户端则打开游戏的 TapTap 网页版的查看评价页。


## 注意事项
使用评价功能时,请勿诱导好评,否则游戏将受到相应处罚。

- 调用评价功能时诱导好评倾向包括:
- 邀请评价界面使用「好评」「五星」等诱导字样。
- 承诺好评奖励。
- 在调起评价前,先询问玩家对游戏满意度,仅为满意度高的用户调起评价。
- 诱导好评行为根据严重程度、影响范围、违规次数,可能面临以下处罚:
- 清除所有诱导好评,回溯游戏评分。
- 游戏详情页展示诱导好评标识。
- 限制流量、暂停分发。

- 建议的引导评价方式:
- 平实的引导玩家「去 TapTap 评价」。
- 有诚意的表述期望玩家客观评价,游戏将根据反馈不断改进游戏。
294 changes: 294 additions & 0 deletions cn/docs/sdk/review/guide.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,294 @@
---
title: 评价开发指南
sidebar_label: 开发指南
sidebar_position: 2
---

import MultiLang from "/src/docComponents/MultiLang";
import CodeBlock from "@theme/CodeBlock";
import v4SDKVersions from '/src/docComponents/v4SDKVersions';
import { Conditional } from "/src/docComponents/conditional";
import AndroidFaq from "../_partials/android-package-visibility.mdx";
import UnitySDKInstallation from "../_partials/unity-sdk-installation.mdx";

## 权限说明

<MultiLang kind="unity_android_v4">

<>
该模块依赖权限如下:

| 权限 | 使用目的 | 权限申请时机 |
| ---------------------- | ---------------------- | ---------------------- |
| 安装 APK 权限 | 用于安装 Tap 客户端 | 用户首次使用该功能时会申请权限 |
</>

<>

该模块依赖权限如下:

| 权限 | 使用目的 | 权限申请时机 |
| ---------------------- | ---------------------- | ---------------------- |
| 安装 APK 权限 | 用于安装 Tap 客户端 | 用户首次使用该功能时会申请权限 |

同时该模块也会访问设备已安装的 Tap 客户端信息,所以接入 SDK 后将在应用 `AndroidManifest.xml` 中添加如下配置:

```xml
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<queries>
<package android:name="com.taptap" />
</queries>
```

</>

<>

该模块依赖权限如下:

| 权限 | 使用目的 | 权限申请时机 |
| ---------------------- | ---------------------- | ---------------------- |
| 安装 APK 权限 | 用于安装 Tap 客户端 | 用户首次使用该功能时会申请权限 |

同时该模块也会访问设备已安装的 Tap 客户端信息,所以接入 SDK 后将在应用 `AndroidManifest.xml` 中添加如下配置:

```xml
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<queries>
<package android:name="com.taptap" />
</queries>
```

</>

</MultiLang>

## 集成前准备

使用Tap评价功能前提需要通过 **TapTap 开发者中心 > 商店 > 游戏资料 > 商店资料** 中已经上传 APK, 发布设置为 **立即上线** 并通过 **审核**(开发者包如果暂时不想对外,发布状态选 **敬请期待** 或者 **预约**)。


## SDK 获取

<MultiLang kind="unity_android_v4">

<>

<UnitySDKInstallation
npmDeps={[
"com.taptap.sdk.core",
"com.taptap.sdk.update",
]}
githubDeps={[
{package: "com.taptap.sdk.core", url: `https://github.com/taptap/TapSDKCore-Unity.git#${v4SDKVersions.taptap.unity}`},
{package: "com.taptap.sdk.update", url: `https://github.com/taptap/TapSDKUpdate-Unity.git#${v4SDKVersions.taptap.unity}`}
]}
unitypackageModules={[
{name: "TapTapSDK_Core.unitypackage", desc: "TapTapSDK 核心模块,必选"},
{name: "TapTapSDK_Update.unitypackage", desc: "TapTapSDK 更新唤起模块,必选"},
]}/>

</>

<>

1. 项目根目录的 build.gradle 添加仓库地址:

<CodeBlock language="groovy">{
`allprojects {
repositories {
google()
mavenCentral()
}
}`
}</CodeBlock>

2. app module 的 build.gradle 添加对应依赖:

<CodeBlock language="groovy">{
`dependencies {
implementation 'com.taptap.sdk:tap-core:${v4SDKVersions.taptap.android}'
implementation 'com.taptap.sdk:tap-review:${v4SDKVersions.taptap.android}'
}`
}</CodeBlock>

</>

<>

1. 项目根目录的 build.gradle 添加仓库地址:

<CodeBlock language="groovy">{
`allprojects {
repositories {
google()
mavenCentral()
}
}`
}</CodeBlock>

2. app module 的 build.gradle 添加对应依赖:

<CodeBlock language="groovy">{
`dependencies {
implementation 'com.taptap.sdk:tap-core:${v4SDKVersions.taptap.android}'
implementation 'com.taptap.sdk:tap-review:${v4SDKVersions.taptap.android}'
}`
}</CodeBlock>

</>

<>

</>

</MultiLang>

## 初始化

### TapSDK 初始化

<MultiLang kind="unity_android_v4">

<>

`TapTapSdkOptions` 详细参数见 [入门指南#快速开始](/sdk/access/quickstart/#初始化)

```cs
using TapSDK.Core;
using TapSDK.Compliance;

// 核心配置 详细参数见 [入门指南#快速开始]
TapTapSdkOptions coreOptions = new TapTapSdkOptions();
// TapSDK 初始化
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;

/* 必选配置 */
// 开发者中心对应 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]=海外
null, // 分包渠道名称 , 可为空
null, // 游戏版本号
false, // 是否自动上报 GooglePlay 内购支付成功事件 仅 [TapTapRegion.GLOBAL] 生效
false, // 自定义字段是否能覆盖内置字段
null, // 自定义属性,启动首个预置事件(device_login)会带上这些属性
null, // OAID 证书内容, 用于上报 OAID 仅 [TapTapRegion.CN] 生效
enableLog, // 是否开启 log,建议 Debug 开启,Release 关闭,默认关闭 log
TapTapLanguage.AUTO // TapSDK 首选语言 默认为 TapTapLanguage.AUTO
);
// 初始化 TapSDK
TapTapSdk.init(context, tapSdkOptions);
```

</>

<>

`TapTapSdkOptions` 详细参数见 [入门指南#快速开始](/sdk/access/quickstart/#初始化)

```kotlin
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
),
)
```
</>

受限于苹果政策,iOS 平台的 TapTap 客户端不提供跳转游戏评价功能

```cpp
FTapUpdate::Init(TEXT("clientId"), TEXT("clientToken"));
```

</MultiLang>

## 跳转游戏评价

<MultiLang kind="unity_android_v4">

<>

```cs
// TODO unity
```
</>

<>

```java
import com.taptap.sdk.review.TapTapReview;

TapTapReview.openReview();
```
</>

<>

```kotlin
import com.taptap.sdk.review.TapTapReview

TapTapReview.openReview()
```
</>

<>

受限于苹果政策,iOS 平台的 TapTap 客户端不提供跳转游戏评价功能

</>

</MultiLang>


## 测试
为了保证上线后,游戏对于用户是否正常使用 Tap 评价功能,请务必按照以下说明完成自测。

### 上传 APK

新应用需要上传测试的 APK 至开发者中心,并通过审核。已上架的游戏,需确保更新资料版本中的 APK 包名和已上架的 APK 包名保持一致。

### 应用上线

针对已上架的游戏,开发者需确保**更新资料版本中的包名和已上架的游戏包名保持一致**,否则会导致玩家因包名不一致而更新失败。

针对新游戏,开发者需要在 TapTap 上线一个包含 APK 包并且通过审核**(用于平台获取游戏包名,包名需与后续更新的包名保持一致)**的商店资料版本,如果 APK 包当前无法对外,可将发布状态设置为「敬请期待」或「预约」。

### 开始测试

触发跳转游戏评价功能后正常状态是可以唤起 TapTap 应用对应游戏详情的评价页面。




5 changes: 5 additions & 0 deletions cn/docs/sdk/share/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"label": "TapTap 分享",
"collapsed": true,
"position": 3
}
34 changes: 34 additions & 0 deletions cn/docs/sdk/share/faq.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
title: 常见问题
sidebar_label: 常见问题
sidebar_position: 3
---

## 为什么分享内容中图片内容不显示?

通常情况是 [Android FileProvider](https://developer.android.com/reference/androidx/core/content/FileProvider) 配置不对导致,需要检查 [Android FileProvider](https://developer.android.com/reference/androidx/core/content/FileProvider) 配置是否正确

## 分享后直接闪退什么原因?

检查是否是 contents 字段携带的文本数据里过大导致,Android 系统对于 intent 传递的数据内容大小是有限制的。通常是 1Mb。

## 如何判断当前 TapTap 版本是否支持分享?

SDK 有提供相应 API,示列如下:

```
if (TapTapShareUtil.checkTapTapInstall(this)
&& TapTapShareUtil.checkTapTapSupportShare(this)) {
// 当前已安装 TapTap 且 支持分享功能
}
```

## 已经安装最新版 TapTap,TapTapShareUtil.checkTapTapInstall(this) 还是返回 -1,提示没有安装。

检查当前项目SDK版本Android 11(API 30)以后需要再 AndroidManifest.xml 添加安装包可见性权限:

```
<queries>
<package android:name="com.taptap" />
</queries>
```
Loading
Loading