{{ currentTabName }}
{{ (user.display_name || user.username || '?')[0].toUpperCase() }}
{{ user.display_name || user.username }} VIP {{ user.credits.toFixed(2) }}
打包队列
{{ queueStatus.pending }}
排队中
{{ queueStatus.running }}
打包中
{{ queueStatus.maxConcurrent }}
最大并发
VIP 每月免费 {{ vipMonthlyFree }} 次 | 资源包超过 {{ maxFreeSize }}MB 加收 {{ oversizeFee }} 元 | 超出免费次数按 {{ creditsPerBuild }} 元/次 | 本月已用 {{ user.month_build_count }} 次,剩余 {{ monthBuildLeft }} 次免费(含额外 {{ user.month_extra_count }} 次)
应用配置
界面配置
去除启动Logo需加收 {{ removeLogoFee }} 元,年费VIP(到期>1年)可免费去除
更新配置
更新接口返回格式说明 ▼
{ 
  "hasUpdate": true, 
  "version": "1.0.17", 
  "patchUrl": "http://www.mxide.com/demo/wm/wm.zip", 
  "description": "测试自适应模式" 
}
打包方式
点击上传图标
{{ iconFile.name }}
输入网址后,将自动生成一个内嵌网页的 APK,打开即跳转到该网址
点击上传图标
{{ iconFile.name }}
点击上传资源 ZIP
{{ resourceFile.name }}
TapTap SDK(可选)
{{ taskMessage }}
{{ task.error }}
打包记录
暂无打包记录
{{ r.app_name || '未命名' }} {{ statusText(r.status) }}
{{ r.package_name }} | {{ formatTime(r.created_at) }}
{{ r.error }}
下载 已过期
{{ (user.display_name || user.username || '?')[0].toUpperCase() }}
{{ user.display_name || user.username }}
VIP {{ user.vip_level || 1 }} 普通用户 到期:{{ vipExpDate }}
本月已打包 {{ user.month_build_count }} 次,剩余 {{ monthBuildLeft }} 次免费 (含额外补充 {{ user.month_extra_count }} 次)
本月已打包 {{ user.month_build_count }} 次
{{ user.credits.toFixed(2) }}
账户余额(元)
★
开通VIP
享受免费打包次数
+
余额充值
充值即送优惠
☰
打包记录
查看历史记录
↻
刷新信息
同步最新数据
VIP 会员权益
{{ vipMonthlyFree }}
每月免费次数
{{ creditsPerBuild }}元
超出后每次收费
{{ maxFreeSize }}MB
免费资源包大小
{{ oversizeFee }}元
超大包附加费
权益对比
权益
普通用户
VIP用户
打包收费
{{ creditsPerBuild }}元/次
每月{{ vipMonthlyFree }}次免费
资源包大小
≤{{ maxFreeSize }}MB免费
≤{{ maxFreeSize }}MB免费
超大包附加费
{{ oversizeFee }}元
{{ oversizeFee }}元
打包队列
普通队列
优先队列
TapTap SDK 集成文档

一、配置说明

在打包页面的 TapTap SDK 卡片中填写以下配置:

{
  "TapTapEnabled": true,
  "TapTapClientId": "开发者后台获取",
  "TapTapClientToken": "开发者后台获取",
  "TapTapShowSwitchAccount": true,
  "TapTapUseAgeRange": true
}

二、登录接口

AndroidInterface.tapTapLogin()
发起 TapTap 登录
回调:onTapTapLoginSuccess(data) / onTapTapLoginError(msg) / onTapTapLoginCancel()
AndroidInterface.getTapTapLoginStatus()
获取登录状态(同步返回 JSON)
返回:{"loggedIn":true,"accessToken":"xxx","openId":"xxx","unionId":"xxx"}
AndroidInterface.tapTapLogout()
登出
回调:onTapTapLogout()

三、实名认证 / 防沉迷

AndroidInterface.tapTapStartCompliance(userIdentifier)
启动合规认证(需先登录,传入 openId)
回调:onTapTapComplianceResult(data)
AndroidInterface.tapTapCheckPayment(amount)
检查消费上限(amount 单位:分)
回调:onTapTapComplianceResult(data)
AndroidInterface.tapTapSubmitPayment(amount)
上报消费金额(支付成功后调用)

四、合规认证结果码

codetype说明
500LOGIN_SUCCESS认证通过,可进入游戏
1000EXITED退出认证,返回登录页
1001SWITCH_ACCOUNT切换账号,返回登录页
1030PERIOD_RESTRICT时段限制,无法游戏
1050DURATION_LIMIT无可玩时长
1100AGE_LIMIT年龄限制
1200NETWORK_ERROR网络异常
9002REAL_NAME_STOP未完成实名认证

五、完整示例

// 登录
function onTapTapLoginSuccess(data) {
  console.log('登录成功', data.openId);
  AndroidInterface.tapTapStartCompliance(data.openId);
}
function onTapTapLoginError(msg) { alert('登录失败: ' + msg); }
function onTapTapLoginCancel() { console.log('取消登录'); }

// 合规认证结果
function onTapTapComplianceResult(data) {
  if (data.code === 500) {
    enterGame();  // 认证通过
  } else if (data.code === 1000 || data.code === 1001) {
    backToLogin();
  } else {
    alert(data.message);
  }
}

// 调用登录
AndroidInterface.tapTapLogin();