ttsdk 本地音频播放管理器 创建 InnerAudioContext 音频资源 url 地址,也支持相对路径的地址。只支持 mp3、wav、m4a、aac 格式。 如果 url 地址是一个相对路径的地址,比如 Assets/Sound/music.mp3, 那么会自动根据配置的 url 前缀拼接为完整的url:${url_prefix}/Assets/Sound/music.mp3 有两种方法设置 url 前缀: 1. 构建 WebGL 时填写【游戏资源CDN】url 前缀,运行时会自动拼接为完整 url。 2. 通过调用 StarkAudioManager.SetAudioUrlPrefix 函数设置 url 前缀。 如果同时填写了【游戏资源CDN】和调用了 StarkAudioManager.SetAudioUrlPrefix 函数,默认优先使用构建时填写的【游戏资源CDN】url前缀。 开始播放的位置(单位:s) 是否自动播放 是否自动循环 当前音量,范围 0 ~ 1 播放速度。范围 0.5 ~ 2.0,默认为 1 是否需要下载,如果为true,则会完全下载后再触发OnCanplay 音频实例上下文对象,完成对音频播放 同时支持Android及WebGL平台,但如果是Android下播放mp3文件,Unity引擎需要为Unity2020.1.14f1及以上版本 监听音频进入可以播放状态,但不保证后面可以流畅播放 监听音频播放事件 监听音频暂停事件 监听音频停止播放事件 监听自然播放结束事件 监听音频播放出错事件, (errMsg) => {} 监听音频加载中事件,当音频因为数据不足,需要停下来加载时会触发 监听音频开始进行 seek 操作的事件 监听音频完成 seek 操作的事件 当前音频ID 获取音频时长,单位 s 获取当前播放时长,单位 s (由于WebGL底层实现方案的原因,只能将结果异步返回) (currentTime) => {} audioContext.GetCurrentTime(value => { Debug.Log($"audio currentTime: {value} s"); }); 获取当前音频是否是暂停状态 (由于WebGL底层实现方案的原因,只能将结果异步返回) (isPaused) => {} audioContext.GetBuffered(isPaused => { Debug.Log($"audio isPaused: {isPaused}"); }); 获取当前已缓冲的音频长度,单位 s (由于WebGL底层实现方案的原因,只能将结果异步返回) audioContext.GetBuffered(buffered => { Debug.Log($"audio buffered: {buffered} s"); }); 内部方法(请勿调用) 播放音频 同时支持Android及WebGL平台,但如果是Android下播放mp3文件,Unity引擎需要为Unity2020.1.14f1及以上版本 暂停播放 停止播放 销毁当前实例。销毁后该实例将不存在,如需播放需要再次创建 跳转到指定位置播放 音量。范围 0~1。默认为 1 静音,静音时将音量设置为 0,取消静音则恢复原来的音量 设置是否循环播放,默认为 false 是否显示调试Toast提示。当调用StarkSDK相关接口后,获得函数执行状态(主要是失败状态)的反馈。 设置为true则在调用StarkSDK相关接口后,会自动弹出Toast提示。默认不显示。【建议只在调试状态下开启】 Stark_UnitySDK初始化函数 error code : 0 , 无错误 1, stark unity sdk 版本不支持 2,unity engine 版本不被支持 是否在StarkContainer真机环境下 在竖屏正方向下的安全区域 安全区域左上角横坐标 安全区域右下角横坐标 安全区域左上角纵坐标 安全区域右下角纵坐标 安全区域的宽度,单位逻辑像素 安全区域的高度,单位逻辑像素 机型性能评分 屏幕方向 竖屏 横屏 系统信息 当前宿主名,如 Douyin 当前宿主版本号,如 19.2.0 StarkContainer 底层框架版本号 ,如 Apple、samsung 手机设备制造商 手机品牌,如 iPhone 12、SM-G9880 操作系统,如 ios、android 系统版本,如 iOS 15.1.1、Android 11 系统语言,如 zh_CN 客户端基础库版本 设备像素比 屏幕高度,单位逻辑像素 屏幕宽度,单位逻辑像素 状态栏的高度 在竖屏正方向下的安全区域 机型性能评分 当前的登录状态 登录后获取登录的用户信息 https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/open-capacity/user-information/authorization/authorization/ 是否授权用户信息 对应接口:tt.getUserInfo 是否授权地理位置 对应接口:tt.getLocation 是否授权录音功能 对应接口:tt.getRecorderManager.start 是否授权保存到相册 对应接口:tt.saveImageToPhotosAlbum, tt.saveVideoToPhotosAlbum 是否授权摄像头 对应接口:tt.scanCode, tt.chooseImage, tt.chooseVideo 是否授权录屏,默认为开。在 onError 里面报错到没有录屏权限时,可以尝试主动调用 对应接口:tt.getGameRecorderManager 是否授权添加日历事件 对应接口:tt.addPhoneCalendar 用户权限授权结果 代码示例 1:检查用户是否已授权指定权限: ``` if (AuthSetting.UserInfo) { Debug.Log($"用户已授权 UserInfo 权限。"); } else { Debug.Log($"用户未授权过或已拒绝 UserInfo 权限。"); } ``` 代码示例 2:检查用户已授权、拒绝或未授权过指定权限: ``` var scope = AuthorizeScope.UserInfo; if (AuthSetting.TryGetValue(scope, out var authorized)) { if (authorized) { Debug.Log($"用户已授权 {scope} 权限。"); } else { Debug.Log($"用户已拒绝 {scope} 权限。"); } } else { Debug.Log($"用户未授权过 {scope} 权限。"); } ``` 是否授权用户信息 对应接口:tt.getUserInfo 是否授权地理位置 对应接口:tt.getLocation 是否授权录音功能 对应接口:tt.getRecorderManager.start 是否授权保存到相册 对应接口:tt.saveImageToPhotosAlbum tt.saveVideoToPhotosAlbum 是否授权摄像头 对应接口:tt.scanCode tt.chooseImage tt.chooseVideo 是否授权录屏,默认为开。在 onError 里面报错到没有录屏权限时,可以尝试主动调用 对应接口:tt.getGameRecorderManager 是否授权添加日历事件 对应接口:tt.addPhoneCalendar 需获取的抖音权限在授权弹窗中的默认状态 必选项(用户无法取消) 非必选,默认选中 非必选,默认不选中 Stark账号系统 登录成功 临时登录凭证, 有效期 3 分钟。可以通过在服务器端调用 登录凭证校验接口 换取 openid 和 session_key 等信息。 用于标识当前设备, 无论登录与否都会返回, 有效期 3 分钟 判断在当前 APP(头条、抖音等)是否处于登录状态 登录失败 错误消息 检查Session接口调用失败的回调函数 错误原因 接口调用成功的回调函数 获取用户信息失败的回调 失败信息 获取用户信息成功的回调 目标用户信息 用户实名认证成功的回调 判断当前用户是否已经授权给游戏读取自身的信息 是否授权 调用接口判断当前用户是否已经授权时失败或者发生内部错误 获取用户已经授权过的配置时,接口调用成功的回调函数。 授权结果 获取用户已经授权过的配置时,接口调用失败的回调函数。 打开设置页面,返回用户设置过的授权结果时,接口调用成功的回调函数。 授权结果 打开设置页面,返回用户设置过的授权结果时,接口调用失败的回调函数。 实名认证窗口拉起成功回调 实名认证窗口拉起失败回调 "access:fail " + 详细错误信息 展示抖音权限授权弹窗成功回调 回调信息 请求授权返回的票据,此处对标开放平台的 authCode 用户授权的权限 展示抖音权限授权弹窗失败回调 错误码 错误信息 登录-获取临时登录凭证 强制登录默认为true,即若当前未登录宿主,则会调起宿主的登录窗口, 如果用户点击取消则会调用 fail 如果当前登录宿主,则直接返回success,获取到 code 和 anonymousCode 若强制登录为false,当前登录了宿主则会返回success,可以获取到获取到 code 和 anonymousCode 当前未登录宿主,则只有 anonymousCode code 可以换取 openid, openid 是用户的唯一标识 anonymousCode 可以换取 anonymous_openid, 同一台手机 anonymous_openid 是相同的 未登录时, 是否强制调起登录框 登录成功的回调 登陆失败的回调 检查用户当前的 session 状态是否有效 只有成功调用 login 才会生成 session,checkSession 才会进入 success 回调,当用户退出登录会清除 session session_key 会随着login接口的调用被刷新。可以通过checkSession方法验证当前 session 是否有效,从而避免频繁登录。 目前实际测试若使用匿名登录(forceLogin = false),则checkSession会一直返回 fail 只有登录了宿主(forceLogin = true),checkSession才会返回success,下次不用login checkSession也可以返回true 验证有效的回调 验证无效或者验证失败的回调 获取已登录用户的基本信息或特殊信息 若匿名登录后 userinfo里面字段全部为默认值 登录了宿主后可以获取账号数据,下次不用login GetScUserInfo也可以返回正确数据 获取用户信息成功的回调 获取用户信息失败的回调 判断用户是否已经授权给当前游戏读取个人信息 该API会调用宿主的代码,如果调用宿主代码成功则会调用onGetUserInfoAuth,并返回是否已经授权 如果调用宿主代码失败则会调用onGetUserInfoAuthFail 调用宿主代码成功,并返回是否已经授权读取用户信息 调用宿主代码时发生错误 主动打开获取用户信息的授权界面,在Setting界面关闭后返回最新的授权状态,该方法没有超时时间 该API会调用宿主的代码,如果调用宿主代码成功则会调用onGetUserInfoAuth,并返回最新的授权状态 如果调用宿主代码失败则会调用onGetUserInfoAuthFail 获取用户已经授权过的配置。 结果中只会包含向用户请求过的权限。 与 OpenSetting 的区别是 GetSetting 只会获取配置,而不会打开配置页面。 接口调用成功的回调函数 接口调用失败的回调函数 打开设置页面,返回用户设置过的授权结果。 结果中只会包含用户请求过的权限。 与 GetSetting 的区别是,OpenSetting 会打开设置页面,而 GetSetting 只会返回用户授权的设置信息。 接口调用成功的回调函数 接口调用失败的回调函数 用户在实名认证弹窗完成实名认证后回调 需要在初始化时设置,回调时机为:游戏中弹出实名认证,用户完成了实名认证时触发 获取已登录用户的基本信息或特殊信息 若匿名登录后 userinfo里面字段全部为默认值 登录了宿主后可以获取账号数据,下次不用login GetScUserInfo也可以返回正确数据 是否获取加密信息以及 CloudId 验证有效的回调 验证无效或者验证失败的回调 获取已登录用户的基本信息或特殊信息 若匿名登录后 userinfo里面字段全部为默认值 登录了宿主后可以获取账号数据,下次不用login GetScUserInfo也可以返回正确数据 是否获取加密信息以及 CloudId 是否需要返回用户实名认证状态,如果是则在成功回调参数中额外返回 `realNameAuthenticationStatus` 字段 验证有效的回调 验证无效或者验证失败的回调 拉起实名认证窗口。 注意:调用该接口前请确保用户已登录。 实名认证窗口拉起成功回调 实名认证窗口拉起失败回调 提供小游戏获取抖音权限的能力,展示出抖音权限授权弹窗。 在使用在接口前,需要小游戏拥有者登录抖音开发平台申请开通小游戏需要的权限。 广告的回调函数 广告加载成功 广告播放成功,Unity测触发该回调时间不准确,具体触发Show的时间参考返回毫秒时间戳 广告失败,错误码同 ShowVideoAd 广告关闭回调 已播放时长. 有效播放时长(超过此时长可以授予激励). 视频总时长. 是否显示广告加载提示,默认显示 展示激励视频广告,在广告未加载时会发起异步请求,弱网情况下会进行重试。失败会调用errCallback 激励视频广告只支持一个实例,申请多个激励视频广告位是无效的 简单回调设置,激励视频完成和错误的回调函数 与 SetVideoAdCallBack 不冲突,在结束时都会被调用到,会同时收到close和complete 错误码由sdk传出,原因参考 https://bytedance.feishu.cn/docs/doccn1lAbZzMOqI5ueq1gCyPdcg# https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/open-capacity/ads/ads-error-code-description/ https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/ads/tt-create-interstitial-ad 1004 可能是由于广告请求被限制了次数,需要跟广告投放沟通 如果需要更详细的回调信息,可使用 SetVideoAdCallBack 广告aid. 视频广告关闭回调,参数含义 IsComplete,表明广告是否播放完成. 视频广告错误回调,参数含义 errCode, errMsg 表明错误码和错误描述. 视频广告详细过程回调,一般可以不关注. 展示激励视频广告,在广告未加载时会发起异步请求,弱网情况下会进行重试。失败会调用errCallback 激励视频广告只支持一个实例,申请多个激励视频广告位是无效的 简单回调设置,激励视频完成和错误的回调函数 与 SetVideoAdCallBack 不冲突,在结束时都会被调用到,会同时收到close和complete 错误码由sdk传出,原因参考 https://bytedance.feishu.cn/docs/doccn1lAbZzMOqI5ueq1gCyPdcg# https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/open-capacity/ads/ads-error-code-description/ https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/ads/tt-create-interstitial-ad 1004 可能是由于广告请求被限制了次数,需要跟广告投放沟通 如果需要更详细的回调信息,可使用 SetVideoAdCallBack 广告aid. 视频广告关闭回调,参数含义 IsComplete,表明广告是否播放完成. 视频广告错误回调,参数含义 errCode, errMsg 表明错误码和错误描述. 视频广告详细过程回调,一般可以不关注. 再得添加 https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/open-capacity/ads/rewardagainintroduce 是否开启再得广告模式(只支持安卓系统的抖音和抖音极速版) 再得广告的奖励文案,玩家每看完一个广告都会展示,如【再看1个获得xx】xx就multitonRewardMsg中的文案,按顺序依次展示,单个文案最大长度为 7,multiton为true时必填 额外观看广告的次数,合法的数据范围为1-4,multiton为true时必填 是否开启进度提醒,开启时广告文案为【再看N个获得xx】,关闭时为【 再看1个获得xx】。N表示玩家当前还需额外观看广告的次数。 BannerAd 对象 显示。如果加载出错,会调用CreateBannerAd的参数 errCallback 隐藏 销毁 改变样式 成功后会调用CreateBannerAd的参数 resizeCallback 横屏下可以更改位置和宽度,竖屏下只能更改位置。 样式:"style":{"top":0, "left":0, "width":128}} 是否有效,bannerad在load出错的情况下,如果adInterval为-1,则无法再进行刷新。此时认为已失效,需要destroy再重新创建 Banner样式 广告位区域左上角横坐标 广告位区域左上角纵坐标 广告位区域宽度 广告位区域高度,受广告内容影响自主变化, 无法由外部指定 创建Banner广告,返回 BannerAd 实例。支持多实例,可以在一个页面下展示多个。也可以分页面展示 竖屏情况下,Banner广告接受的宽度范围是 0.8*屏幕宽度,1.0*屏幕宽度。 横屏情况下,Banner广告接受的最小宽度是 128,最大宽度是 208。 开发者可以在这之间自由指定广告宽度。广告组件会自动等比例缩放素材。 创建Banner示例后,要主动调用show来进行展示 错误码由sdk传出,原因参考 https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/open-capacity/ads/ads-error-code-description/ banner广告位的adid 样式:"style":{"top":0, "left":0, "width":320}} width 在竖屏下会被限制在 [0.8*ScreenWidth,1.0*ScreenWidth],横屏下会被限制在[128, 208] 广告自动刷新的间隔时间,单位为秒,参数值必须大于等于 30(该参数不传入时 Banner 广告不会自动刷新). 广告错误回调,参数表明错误码和错误描述. 广告加载回调. 广告样式改变回调,第一个参数是width.第二个参数是height. 广告关闭回调,仅在WebGL有效 InterstitialAd 对象 加载 显示 是否已加载 销毁 创建并播放插屏广告,在广告模块启动15s内不允许展示插屏广告,在任何地方调用API.GetStarkAdManager,就会启动广告模块 两个插屏广告展示间隔不能少于30s 插屏广告支持多实例。简单回调设置,插屏广告完成和错误的回调函数 插屏广告实例只支持展示一次,出现加载错误,或 展示成功,点击关闭按钮或视频广告外的其他地方,广告实例都会自动销毁。下一次需再次创建。 提供接口可以手动销毁 错误码由sdk传出,原因参考 https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/open-capacity/ads/tt-create-interstitial-ad 插屏广告位的adid 广告视频错误回调,参数含义 errCode, errMsg 表明错误码和错误描述. 广告视频关闭回调. 广告加载回调. 设置激励视频广告的回调。获取完整的回调信息,一般处理都可以通过ShowVideoAdWithId完成,需要时使用 激励视频广告的回调. 游戏切到前台事件 游戏切到后台事件 监听游戏切到前台 监听游戏切到后台 监听游戏切到前台,统一所有平台,并携带参数 监听游戏切到后台,统一所有平台 监听游戏到前台,统一所有平台,携带参数的格式为字典,可以根据指定key获取指定数据 https://bytedance.feishu.cn/docx/NkzOdcUPXo02bdxl6zqcemGinzb 监听游戏退出 返回值为true,则表示由开发者自行处理退出逻辑,可以调用StarkSDK.API.ExitApp来手动退出游戏。返回值为false,则默认退出游戏。 设置剪切板信息 设置的内容 bool = true设置成功,反则关注错误信息 获取剪切板信息 bool = true获取成功,value为内容,反则关注错误信息 开始监听设备方向变化 "监听设备方向的变化回调函数的执行频率,game 适用于更新游戏的回调频率,在 20ms/次 左右,ui 适用于更新 UI 的回调频率,在 60ms/次 左右,normal 普通的回调频率,在 200ms/次 左右" 停止监听设备方向变化 监听设备方向变化事件 抖音云模块 请求相关设置 网络请求方法,支持 GET/POST/OPTIONS/PUT/HEAD/DELETE 请求header Post 请求的参数 CloudId key 开发自己定义, value 是cloudId 数据, 相关key value 数据会被自动加到post 请求的body 中 请求响应 请求抖音云服务端接口 可以参考 小游戏抖音云相关文档 https://developer.open-douyin.com/docs/resource/zh-CN/developer/tools/cloud/develop-guide/invoke-sever/cloud-sdk 抖音云平台环境id 抖音云平台服务id 请求path 请求参数 成功回调 失败回调 获取抖音云文件访问地址 抖音云平台环境id 云文件path 最大有效期 成功回调 失败回调 抖音云文件删除 抖音云平台环境id 云文件path 成功回调 失败回调 抖音云文件上传 抖音云平台环境id 云文件path 需要传递绝对路径 上传进度回调 上传成功毁掉 上传失败回调 下载抖音云文件 抖音云平台环境id 云文件path 需要传递绝对路径 下载进度回调 下载成功毁掉 下载成功毁掉 返回抖音云操作数据库对象 返回一个 ServerDate 对象, 用于表示服务端时间, 可以用于插入数据或者 查询的条件判断 顶部弹窗 底部弹窗 顶部气泡 游戏收藏 收藏回调,true表示成功,false表示失败 取消游戏收藏 取消收藏回调,true表示成功,false表示失败 游戏是否已收藏 是否已收藏,true表示已收藏,false表示未收藏 收藏引导 弹窗类型,默认为底部弹窗 弹窗文案,仅style为 Tip 时可修改,最多显示 12 个字符。 调起引导用户复访的提示弹窗,目前仅抖音宿主支持。 为了更好的玩家体验,建议在按钮的点击回调中使用。 调起复访提示回调,true表示成功,false表示失败 文件存储接口 具体使用说明参考文档:https://bytedance.feishu.cn/docx/JpAMdacnaoyFDdx0fhXcUwL5nAe 用户数据存储的路径 将字符串写入文件(同步) 要写入的文件路径 要写入的文本 指定写入文件的字符编码 成功返回空字符串,失败返回错误信息 将二进制写入文件(同步) 要写入的文件路径 要写入的二进制数据 成功返回空字符串,失败返回错误信息 将二进制写入文件(异步) 将字符串写入文件(异步) 读取本地文件内容(异步) 从本地文件读取二进制数据数据(同步) 字节数据,读取失败返回null 从本地文件读取字符串数据(同步) 要读取的文件的路径 指定读取文件的字符编码, 不能为空 字符串数据,读取失败返回null 判断文件/目录是否存在(同步) 要判断是否存在的文件/目录路径 成功返回 true, 失败返回 false 判断文件/目录是否存在(异步) 复制文件(同步) 源文件路径 目标文件路径 成功返回空字符串,失败返回错误信息 复制文件(异步) 重命名文件(异步) 重命名文件(同步) 源文件路径 目标文件路径 成功返回空字符串,失败返回错误信息 删除文件(同步) 源文件路径,支持本地路径 成功返回空字符串,失败返回错误信息 删除文件(异步) 创建目录(异步) 创建目录(同步) 创建的目录路径 是否在递归创建该目录的上级目录后再创建该目录。如果对应的上级目录已经存在,则不创建该上级目录。如 dirPath 为 a/b/c/d 且 recursive 为 true,将创建 a 目录,再在 a 目录下创建 b 目录,以此类推直至创建 a/b/c 目录下的 d 目录。 成功返回空字符串,失败返回错误信息 删除目录(异步) 删除目录(同步) 创建的目录路径 是否递归删除目录。如果为 true,则删除该目录和该目录下的所有子目录以及文件 。 成功返回空字符串,失败返回错误信息 读取文件描述信息(同步) 文件/目录路径 是否抛出错误信息,如果抛出错误信息,当文件不存在时则会抛出异常,错误信息从异常中获取。 返回文件信息,如果访问失败则返回null 读取文件描述信息(异步) 获取保存的用户目录文件列表(仅WebGL平台可用) 根据url链接获取本地缓存文件路径(仅WebGL平台可用) 输入文件下载链接url 返回本地缓存文件路径,以scfile://user开头的路径,可以直接用这个路径访问该文件 判断该url是否有本地缓存文件(仅WebGL平台可用) 输入文件下载链接url 如果存在缓存文件则返回true,不存在缓存文件则返回false 是否显示视频分享Toast UI提示,默认显示 开始录屏 录屏错误 错误码 错误消息 录屏完成 实际视频路径 视频分享成功 视频分享失败 错误消息 视频分享取消 录屏状态枚举 录制开始中 录制已开始 录制暂停中 录制已暂停 录制停止中 录制已停止 录制结束 录制错误 录制的视频时长太短 视频分享状态枚举 未进行视频分享 视频分享中 等待分享器回调 视频分享成功 视频分享失败 视频分享取消 设置录屏是否开启 开启设置为true,禁止设置为false 获取录屏开启状态 返回true则表示录屏开启,返回false为录屏关闭 设置录屏关键帧插帧间隔 内部默认关键帧间隔1s,若需要更小的关键帧间隔精度,可通过该接口设置关键帧间隔 插帧思路按照帧间隔在超过下述设置阈值后,将自动将对应到来的帧插成关键帧 在录制前设置,在下次录制时候即生效 视频关键帧插帧间隔 单位ms,默认值-1,为不插帧 是否设置成功回调, true 成功 false 失败 开始录屏 是否录制声音,默认为录制声音 最大录制时长,单位 s。小于等于 0 则无限制。默认为10分钟 视频录制开始回调 视频录制失败回调 函数调用状态,调用成功返回true,否则返回false 时间片段(用于视频裁剪) 开始时间,单位ms 结束时间,单位ms 停止录屏 视频录制完成回调 视频录制失败回调 停止后需要对视频进行裁剪的时间片段,如果为null或空列表,则不对视频进行裁剪 是否对视频裁剪片段进行自动合并。 合并规则: 如果有两段重叠的时间片段,并且重叠部分小于等于1秒,则对这两段进行合并为一段 若autoMerge为true,比如时间片段为{[1000, 5000], [4000, 7000]},会被合并为{[1000, 7000]}。 若autoMerge为false,将按原始传入的时间片段进行裁剪,是否有重叠,由调用方保证。主要用于自定义裁剪。 函数调用状态,调用成功返回true,否则返回false 获取录屏时长 返回录屏时长,单位 ms 获取视频录制状态 VideoRecordState 给录屏分享设置默认的配乐,若链接不符合要求则不生效,参考文档:https://bytedance.feishu.cn/docs/doccnlj9zMlqSbD0S0FEMonoJZd 抖音PGC音乐的短链。形如 "https://v.douyin.com/JmcxWo8/", null 或者 “”表示取消默认配乐 获取视频分享状态 VideoClipState 分享视频。分享的视频文件是调用StopVideo后生成的文件。 注意:视频分享需要录制至少3s的视频,低于3s的视频将会分享失败。 分享成功回调 分享失败回调 分享取消回调 函数调用状态,调用成功返回true,否则返回false 带标题和话题的分享视频。分享的视频文件是调用StopVideo后生成的文件。 注意:视频分享需要录制至少3s的视频,低于3s的视频将会分享失败。 分享成功回调 分享失败回调 分享取消回调 分享视频的标题,如不需要设置标题,可以传null或空字符串 分享视频的话题,如不需要设置话题,可以传null或空列表 函数调用状态,调用成功返回true,否则返回false 带Json数据格式的分享视频。分享的视频文件是调用StopVideo后生成的文件。 注意:视频分享需要录制至少3s的视频,低于3s的视频将会分享失败。 分享成功回调 分享失败回调 分享取消回调 视频分享的其它一些字段信息 (除videoPath、channel字段的其它字段信息,如分享话题、标题、描述等)。 参考:https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/retweet/tt-share-app-message/ 函数调用状态,调用成功返回true,否则返回false 金币发放or扣除 以上参数使用json的形式传入,例如:{"type":1,"bizId":"xxxxx","goldNum":1,"customId":"xxxx"} 执行成功的回调函数,会返回平台订单号,例如:{"orderId":"xxxxx"} 接口调用成功的回调函数 接口调用失败的回调函数 互推格子模块 游戏互推组件能力 GridGamePanelCount,表示游戏推荐组件的格子数量 从组件内打开游戏时附带的query信息 GridGamePanelSize,表示组件大小,large:100%,medium:90%,small:80%。仅 gridCount = one | four 时有效。 控制游戏推荐组件的展示位置,不传入时默认展示在屏幕右下角。仅 gridCount = one 时有效。 显示 隐藏 销毁 https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/open-capacity/im-group/groupchatintroduce 查询用户通过小游戏平台创建的群的信息 如游戏开发者在平台创建了群聊 ABC,那么游戏侧可以基于游戏开发者在这个游戏中的 openid,查询其在小游戏平台创建了哪些群,群的状态如何,做游戏内的加群逻辑优化 建群用户的 openid 必填 接口调用成功的回调函数 必填 接口调用失败的回调函数 必填 会话来源 可空 附加信息 可空 在平台创建群聊,获得 groupid 后,游戏内通过这个方法引导用户加入抖音群 群 ID 必填 接口调用成功/失败的回调函数 必填 会话来源 可空 附加信息 可空 开始监听陀螺仪 获取陀螺仪数据的间隔时间,单位为毫秒(ms),默认大小为 50 接口调用状态回调,(bool success, string errMsg) => {} 停止监听陀螺仪 接口调用状态回调,(bool success, string errMsg) => {} 陀螺仪回调 x 轴的角速度。 y 轴的角速度。 z 轴的角速度。 从设备启动到现在经过的时间戳,单位是 ms。 姿态角值,围绕 Z 轴旋转,也叫翻滚角。 姿态角值,围绕 X 轴旋转,也叫做俯仰角。 姿态角值,围绕 Y 轴旋转,也叫偏航角。 宿主事件监听 添加宿主事件监听 事件名 回调函数,(result) => {},宿主事件触发后自动调用 移除宿主事件监听 事件名 Touch 对象表示在触控设备上的触摸点。通常是指手指或者触控笔在触屏设备或者触摸板上的操作。 Touch 对象的唯一标识符,只读属性。一次触摸动作(指手指的触摸)在平面上移动的整个过程中, 该标识符不变。 可以根据它来判断跟踪的是否是同一次触摸过程。 触点相对于屏幕左边沿的 X 坐标。 触点相对于屏幕上边沿的 Y 坐标。 触摸事件 当前所有触摸点的列表 触发此次事件的触摸点列表 事件触发时的时间戳 将 Stark 的事件包装到 TT 的事件 delegate,同时管理 On/Off 规则 触控事件回调 监听开始触摸事件 监听触点移动事件 监听触摸结束事件 监听触点失效事件 取消监听开始触摸事件 取消监听触点移动事件 取消监听触摸结束事件 取消监听触点失效事件 抖音好友邀请状态变化 状态值, 参考@InviteState 状态对应的信息 监听邀请状态变化事件 抖音好友邀请 房间id 用于放在schema 里面的信息,Key-Value形式。 额外扩展信息, Key-Value形式。 调用结果回调: (isSuccess, errMsg) => {} Example StarkSDK.API.GetStarkInvite().onInviteStateChanged = (state, msg) => { Debug.Log($"onInviteStateChanged - state: {state}, msg: {msg}"); }; var roomId = "12345"; var query = new JsonData {["test"] = "query"}; JsonData extra = null; StarkSDK.API.GetStarkInvite().CreateInvitePanel(roomId, query, extra, (isSuccess, errorMsg) => { if (isSuccess) { Debug.Log("CreateInvitePanel success"); } else { Debug.Log($"CreateInvitePanel failed, {errorMsg}"); } }); 键盘输入事件 键盘输入的当前值 用户点击键盘确定按钮时的事件 键盘输入的当前值 键盘收起事件 键盘输入的当前值 监听键盘输入事件 监听用户点击键盘确定按钮时的事件 监听键盘收起事件 显示软键盘(仅WebGL平台下支持) 参考: https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/interface/keyboard/tt-show-keyboard/ 键盘输入监听请设置 onKeyboardInputEvent 和 onKeyboardConfirmEvent 显示键盘的参数 显示软键盘成功回调: () => {} 显示软键盘失败回调,(errMsg) => {} Example: using StarkSDKSpace; using UnityEngine; using UnityEngine.UI; public class KeyboardTest : MonoBehaviour { public InputField input; private void Start() { SetInputTexts(); RegisterKeyboardEvents(); } private void SetInputTexts() { input.text = "done"; var comp = input.GetComponent<ClickableInputField>(); if (comp == null) { comp = input.gameObject.AddComponent<ClickableInputField>(); } comp.multiple = false; comp.confirmType = input.text; } private void OnDestroy() { UnregisterKeyboardEvents(); } private void RegisterKeyboardEvents() { StarkSDK.API.GetStarkKeyboard().onKeyboardInputEvent += OnKeyboardInput; StarkSDK.API.GetStarkKeyboard().onKeyboardConfirmEvent += OnKeyboardConfirm; StarkSDK.API.GetStarkKeyboard().onKeyboardCompleteEvent += OnKeyboardComplete; } private void UnregisterKeyboardEvents() { StarkSDK.API.GetStarkKeyboard().onKeyboardInputEvent -= OnKeyboardInput; StarkSDK.API.GetStarkKeyboard().onKeyboardConfirmEvent -= OnKeyboardConfirm; StarkSDK.API.GetStarkKeyboard().onKeyboardCompleteEvent -= OnKeyboardComplete; } private void OnKeyboardInput(string value) { Debug.Log($"OnKeyboardInput: {value}"); if (input.isFocused) { input.text = value; } } private void OnKeyboardConfirm(string value) { Debug.Log($"OnKeyboardConfirm: {value}"); } private void OnKeyboardComplete(string value) { Debug.Log($"OnKeyboardComplete: {value}"); } } public class ClickableInputField : EventTrigger { public string confirmType = "done"; // 可选值有: "done", "next", "search", "go", "send" public int maxInputLength = 100; // 最大输入长度 public bool multiple = false; // 是否多行输入 private InputField _inputField; private void Start() { _inputField = GetComponent<InputField>(); } public override void OnPointerClick(PointerEventData eventData) { if (_inputField != null) { if (_inputField.isFocused) { StarkSDK.API.GetStarkKeyboard().ShowKeyboard(new StarkKeyboard.ShowKeyboardOptions() { maxLength = maxInputLength, multiple = multiple, defaultValue = _inputField.text, confirmType = confirmType }); } } } } 收起软键盘(仅WebGL平台下支持) 参考: https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/interface/keyboard/tt-hide-keyboard/ 隐藏软键盘成功回调: () => {} 隐藏软键盘失败回调,(errMsg) => {} 更新键盘,只有当键盘处于拉起状态时才会产生效果。 参考: https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/interface/keyboard/tt-show-keyboard/ 键盘输入监听请设置 onKeyboardInputEvent 和 onKeyboardConfirmEvent 键盘输入框的当前值 更新软键盘成功回调: () => {} 更新软键盘失败回调,(errMsg) => {} 检查直播间/小游戏挂载状态是否有效 入参,主要为直播间ID{"roomID":"xxxx"},如从直播间进入小游戏roomId来源于启动参数中 成功回调 失败回调 完成回调 跳转至直播间 入参,主要为直播间ID{"roomID":"xxxx"} 成功回调 失败回调 完成回调 文件大小,单位:B 文件的类型和存取的权限 判断当前文件是否一个普通文件 是普通文件返回true,不是则返回false 判断当前文件是否一个目录 是目录返回true,不是则返回false 文件最近一次被存取或被执行的时间 文件最后一次被修改的时间 非uc环境下运行 当前uc环境不支持支付功能 前一个支付未完成 orderInfo参数无效 支付失败 拉起微信支付失败 微信未安装 查询订单状态处理函数 订单号(从orderInfo中读取的order_info值) 交易时间(从orderInfo中读取的trade_time值) PayStatus 订单支付状态 支付状态 支付成功 支付超时 支付失败 支付关闭 支付取消 订单状态未知/未支付 拉起支付服务类型 小程序收银台,从收银台选择支付渠道 调用微信 API 支付,不拉起小程序收银台 调用支付宝 API 支付,不拉起小程序收银台 支付渠道 使用微信支付 使用支付宝支付 支付接口 (已废弃) 参考文档:https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/pay/tt-pay/ json字符串。调起小程序支付收银台的签名订单信息。 生成方式参考文档:https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/server/ecpay/server-doc/ 拉起支付服务类型 (小程序收银台、微信、支付宝) 默认勾选的支付方式(支付宝或微信),仅在 serviceType 值为 Checkout 时有效。 注意:这个设置会依赖服务器端下发用户上次使用过的支付方式作为默认支付方式,所以这个设置可能不会生效。 (orderNo, tradeTime) => { return PayStatus; } 查询订单支付状态函数实现,仅在 serviceType 值为 Checkout 时需要实现。 如果 serviceType 值为 Checkout ,需要由业务方实现 orderStatusHandler 接口,根据订单号从业务后台查询支付状态并返回支付状态结果,主要用于通知前端界面展示。 注意:orderStatusHandler 这个回调函数会在底层轮循调用。如果查询不到支付结果状态,可以返回PayUnknown状态。 支付回调 (payStatus) => {} 当有错误发生时回调 (errCode, errMsg) => {} 初始化支付接口,减少支付时卡顿时间 小游戏平台的支付接口 接口文档 https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/payment/tt-request-game-payment mode string 支付的类型, 目前仅为"game" env int 环境配置,目前合法值仅为"0" currencyType string 币种, 目前仅为"CNY" platform string 申请接入时的平台,目前仅为"android" buyQuantity int 金币购买数量 zoneId 选填 string 游戏服务区 id, customId 选填 string 游戏开发者自定义的唯一订单号,订单支付成功后通过服务端支付结果回调回传 extraInfo string 游戏开发者自定义的其他信息,订单支付成功后通过服务端支付结果回调回传。字符串长度最大不能超过 256 `StarkPlayerPrefs` is a class that stores Player preferences between game sessions. It can store string, float and integer values into the user’s platform registry. Sets a single integer value for the preference identified by the given key. You can use StarkPlayerPrefs.GetInt to retrieve this value. Returns the value corresponding to key in the preference file if it exists. Sets the float value of the preference identified by the given key. You can use StarkPlayerPrefs.GetFloat to retrieve this value. Returns the value corresponding to key in the preference file if it exists. Sets a single string value for the preference identified by the given key. You can use StarkPlayerPrefs.GetString to retrieve this value. Returns the value corresponding to key in the preference file if it exists. Returns true if the given key exists in StarkPlayerPrefs, otherwise returns false. Removes the given key from the StarkPlayerPrefs. If the key does not exist, DeleteKey has no impact. Removes all keys and values from the preferences. Use with caution. Writes all modified preferences to disk. https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/open-capacity/game-rank/setImRankData 在关键的游戏场景,设置写入用户的排行榜数据(游戏成绩信息),该数据会上传到服务端 以上参数使用json格式传入,例如"{"dataType":0,"value":"100","priority":0,"zoneId":"default"}" 回调函数 获取排行榜列表,调用 API 后, 根据参数自动绘制游戏好友排行榜 以上参数使用json格式传入,例如"{"rankType":"week","dataType":0,"relationType":"all","suffix":"分","rankTitle":"","zoneId":"default"}" 回调函数 获取排序好的「好友/总榜」数据源,开发者基于数据源自行渲染返回的数据 以上参数使用Json格式传入, 获取成功回调 获取失败回调 https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/open-capacity/game-rank/setImRankData 在关键的游戏场景,设置写入用户的排行榜数据(游戏成绩信息),该数据会上传到服务端 0:数字类型、1:枚举类型;数字类型(0)往往适用于游戏的通关分数(103分、105分),枚举类型(1)适用于段位信息(青铜、白银); 展示出来的数值,dataType == 0 时只能传正数的字符串,否则会报错。value为具体的值,若dataType为0,请传入数字(eg:103、105);若dataType为1,则传入字符串(eg:青铜、白银) dataType 为 1 时,需要传入这个值判断权重,dataType 为 0 时,不填即可 预留字段 回调函数 获取排行榜列表,调用 API 后, 根据参数自动绘制游戏好友排行榜 代表数据排序周期,day为当日写入的数据做排序;week为自然周,month为自然月,all为半年 由于数字类型的数据与枚举类型的数据无法同时排序,因此需要选择排序哪些类型的数据 选择榜单展示范围。default: 好友及总榜都展示,all:仅总榜单 数据后缀,最后展示样式为 value + suffix,若suffix传“分”,则展示 103分、104分 排行榜标题的文案 回调函数 获取排序好的「好友/总榜」数据源,开发者基于数据源自行渲染返回的数据 day、week、month、all 0:数字类型 、 1:枚举类型 friend:当前登录用户的好友的游戏数据排行,default:全部写入数据的排行 ,all: 总榜 页码,从1开始 每页长度,大于 0 小于 40 获取成功回调 获取失败回调 游戏内网络请求模块 请求相关设置 网络请求方法,支持 GET/POST/OPTIONS/PUT/HEAD/DELETE 请求的参数 请求header 期望返回的数据类型 期望响应的数据类型,支持 text 或 arraybuffer 请求响应 发起一个网络请求。网络相关的 API 在使用前需要配置域名白名单。 请参考 https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/guide/basic-ability/network/ 请求地址 相关设置 请求'成功'的回调 请求失败的回调 (内部方法)发起一个网络请求。网络相关的 API 在使用前需要配置域名白名单。 请参考 https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/guide/basic-ability/network/ 请求地址 相关设置 请求'成功'的回调 请求失败的回调 设置是否保持屏幕常亮状态 是否保持屏幕常亮 接口调用成功的回调函数 接口调用失败的回调函数 获取屏幕亮度。 接口调用成功的回调函数,屏幕亮度值,范围 0 ~ 1。0 最暗,1 最亮。 接口调用失败的回调函数 设置屏幕亮度。 屏幕亮度值,范围 0 ~ 1。(0 最暗,1 最亮) 接口调用成功的回调函数 接口调用失败的回调函数 分享模块 分享成功 分享失败 错误消息 分享取消 通用分享 分享成功回调 分享失败回调 分享取消回调 可填的字段信息参考:https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/retweet/tt-share-app-message/ 监听用户点击右上角菜单中的“转发”,"拍抖音"按钮时触发的事件 https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/retweet/tt-on-share-app-message 需要返回一个ShareParam 对象,用于分享 https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/retweet/share-param callback 接收一个 object 类型的参数,属性为:string: channel 取消监听用户点击右上角菜单的“转发”按钮时触发的事件。 https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/retweet/tt-off-share-app-message 通用分享 可填的字段信息参考:https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/api/retweet/tt-share-message-to-friend/ openId string 是 发送对象的 openId templateId string 是 分享素材模板 id,指定通过平台审核的 templateId 来选择分享内容,需在平台设置且通过审核 query string 否 查询字符串,必须是 key1=val1&key2=val2 的格式。从这条转发消息进入后,可通过 tt.getLaunchOptionsSync 或 tt.onShow 获取启动参数中的 query用来实现信息透传 分享成功回调 分享失败回调 分享取消回调 ShowShareMenu 接口调用成功回调 ShowShareMenu 接口调用失败回调 ShowShareMenu 接口调用结束回调(调用成功、失败都会执行) 设置小游戏转发按钮为显示状态。 转发按钮位于小游戏页面右上角的“更多”中。 详细信息:https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/api/retweet/tt-show-share-menu 接口调用成功的回调函数 接口调用失败的回调函数 接口调用结束的回调函数 HideShareMenu 接口调用成功回调 HideShareMenu 接口调用失败回调 HideShareMenu 接口调用结束回调(调用成功、失败都会执行) 设置小游戏转发按钮为隐藏状态。 转发按钮位于小游戏页面右上角的“更多”中。 详细信息:https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/api/retweet/tt-hide-share-menu 接口调用成功的回调函数 接口调用失败的回调函数 接口调用结束的回调函数 确认当前宿主版本是否支持跳转某个小游戏入口场景。 需要确认的入口场景(目前仅支持的入参为'sidebar') 接口调用成功的回调函数, bool为true说明支持,false表示不支持 接口调用结束的回调函数(调用成功、失败都会执行) 接口调用失败的回调函数 调用该API可以跳转到某个小游戏入口场景。 需要确认的入口场景(目前仅支持的入参为'sidebar') 接口调用成功的回调函数, bool为true说明支持,false表示不支持 接口调用结束的回调函数(调用成功、失败都会执行) 接口调用失败的回调函数 调用该API可以跳转到某个小游戏入口场景。支持福利信息透传 参数例子{"scene":"sidebar"[,"activityId":"一般跳转不用这个字段、不要传递"]} 接口调用成功的回调函数, bool为true说明支持,false表示不支持 接口调用结束的回调函数(调用成功、失败都会执行) 接口调用失败的回调函数 注册用户参与复访营销活动。当前只支持侧边栏复访活动 指定用户参与的营销活动id,通过OpenAPI申请得到。未填写时,会由平台选择可用活动,可选,例如{"activityId":"111111"} 接口调用成功的回调函数, 接口调用结束的回调函数(调用成功、失败都会执行) 接口调用失败的回调函数 领取营销活动中完成任务后的奖励。当前只支持侧边栏复访活动 用户参与的营销活动id,通过OpenAPI申请得到。未填写时,会由平台选择可发放的奖励,可选,例如{"activityId":"7368350593716338729"} 接口调用成功的回调函数, 接口调用结束的回调函数(调用成功、失败都会执行) 接口调用失败的回调函数 通用结果消息 错误信息 StarkUDPSocket.Connect 参数 要发送消息的地址 要发送消息的端口号 StarkUDPSocket.Send 参数 要发送消息的地址 要发送消息的端口号 要发送的数据 发送数据的长度,仅当 message 为 ArrayBuffer 类型时有效 合法值:自然数,传入0的时候,会设为 message.byteLength 发送数据的偏移量,仅当 message 为 ArrayBuffer 类型时有效 合法值:自然数,大于等于 message.byteLength 时会设为0 向指定地址发消息时,是否要开启广播 本地信息 远端信息 StarkUDPSocket 消息结果 本地信息 远端信息 消息内容 适配层 StarkUDPSocketBind 参数 bind指定的端口号,合法值:[0, 65535] 传入0或者不传,则绑定一个系统随机分配的可用端口 适配层 StarkUDPSocketSend 参数 UDPSocket 实例 绑定一个系统随机分配的可用端口,或绑定一个指定的端口号。bind 成功会触发 onListening 监听。 bind指定的端口号,合法值:[0, 65535]。传入0或者不传,则绑定一个系统随机分配的可用端口。 绑定成功的端口号 关闭 UDP Socket 实例。 在关闭之后,将无法再调用 Bind、Connect、Bind 等方法。 预先连接到指定的 IP 和端口。 监听收到消息的事件 事件监听函数 回调中是否带有本地和远端地址信息 移除收到消息事件的事件监听函数 事件监听函数 监听关闭的事件 事件监听函数 移除关闭事件的事件监听函数 事件监听函数 监听错误的事件 事件监听函数 移除错误事件的事件监听函数 事件监听函数 监听开始监听数据包的事件 事件监听函数 移除开始监听数据包事件的事件监听函数 事件监听函数 向指定 IP 和端口发送消息。 支持发送 string 或 byte[] 二进制数据。 发送消息的参数 加速器数据回调 宿主枚举 入口枚举 IDE扫码 SC的运行环境 Apk的版本环境 保存宿主环境变量 游戏id 运行的宿主 启动入口 获取query字段,即小程序的启动参数,可能为空,使用时需判空 启动场景(该字段目前只有在「侧边栏」启动场景才会返回,返回的属性值为:homepage) 启动场景(该字段目前只有在「侧边栏」启动场景才会返回,返回的属性值为:homepage) 获取小程序启动时的参数,里面的参数可能为空,使用时需判空; 可以在StarkSDK.init()之后调用,确保得到非空值 接入头条抖音能力的接口,在非宿主环境下,会对一些回调进行模拟 如果调用的函数在宿主版本不被支持,则会抛出异常 SDK版本号 游戏版本号,通过该接口替换Application.version获得正确的版本号信息 游戏发布版本号,发布版本时发布工具中指定的版本号 设置Container初始化成功的回调。获取宿主及入口信息 需要在调用其他api之前调用 非Container下不会有此回调 version : 1.0.0 初始化完成的回调. 获取录屏相关接口 StarkGameRecorder 提前向用户发出授权请求。该方法不会调用对应接口,只会弹框咨询用户是否授权或者获取用户信息。如果用户之前有授权,该接口直接返回成功,不会跟用户产生交互。 需要预授权的 scope,详见 https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/open-capacity/user-information/authorization/authorization/ 接口调用成功的回调函数 接口调用失败的回调函数 需要白名单 获取 RtcEngine 实例(包含音视频应用程序调用的主要方法的接口类实例),应当只调用一次。第二次调用getRtcEngine 时,实际获取的还是上次那个 StarkRTCManager 广告相关接口 StarkAdManager 网络请求接口 StarkAdManager 控制sdk中的Log级别 获取小程序启动时的参数,里面的参数可能为空,使用时需判空; 可以在StarkSDK.init()之后调用,确保得到非空值 账号模块 获取container sdk 版本号 like "1.0.0" 关注抖音号 需要在开发者平台-设置中绑定抖音号 完成打开抖音号的回调。涉及用户信息,无法获取用户是否关注了抖音号的状态 打开抖音号失败的回调。errCode: 当关注抖音号失败,是否显示Toast弹窗提示,默认显示 CODE_ERROR = -1 CODE_NOT_SUPPORT = -2 CODE_NOT_LOGIN = -3 CODE_NO_ACTIVITY = -4 CODE_UID_ERROR = -5 创建快捷方式 创建快捷方式回调,参数为是否成功,true表示成功,false表示失败 当创建失败,是否显示Toast弹窗提示,默认显示 快捷方式是否已经创建 是否存在的回调,参数表示是否已创建,true表示已创建,false表示未创建 可以配置震动周期的手机震动接口,单位ms 震动周期 like long[] pattern = {0, 100, 1000, 300}; 传入null则取消震动 重复次数,为-1则不重复 注意:WebGL平台下,只有两种震动:长和短。 pattern数组参数只能传入一个数值,传入小于1000则为短震动,否则为长震动。 不支持取消和重复。即repeat参数无效。 > 获取分享相关接口 是否已关注抖音号 是否关注的回调,参数表示是否已关注,true表示已关注,false表示未关注 是否在小程序开发者后台绑定了抖音号 是否绑定的回调,参数表示是否已绑定,true表示已绑定,false表示未绑定 获取收藏引导接口 接入sdk的debugpanel面板,注册一些debug命令的回调函数 支付服务接口 自定义分析数据上报接口,调用后,会将数据上报到小程序开发者平台,开发者可以在小程序开发者平台中查看上报数据。使用前,需要在小程序管理后台事件中新建事件,配置好事件名与字段。 可参考文档 https://microapp.bytedance.com/docs/zh-CN/mini-app/data/advanced-analysis/events 事件名 上报的数据,默认为null key : 配置中的字段名. value(number|string|boolean) : 上报的数据 保存游戏数据接口,所有游戏数据保存上限50M 数据名 可序列化的数据(存档类需标记为Serializable)[见以下的例子] 保存成功返回true,否则返回false [Serializable] class SaveData { public int IntValue = 99; private float FloatValue = 1.0f; public string StrValue = "My String"; public Dictionary<String,bool> map; public List<String> listStr; } SaveData sd = new SaveData(); sd.xx = yyy; bool ret = StarkSDK.API.Save<SaveData>(sd); 加载游戏数据接口,返回数据类型需为Serializable 数据名 SaveData loaded = StarkSDK.API.LoadSaving<SaveData>(); 删除游戏数据接口 数据名 StarkSDK.API.DeleteSaving<SaveData>(); 删除所有游戏数据 获取游戏数据磁盘总大小 数据名 打开客服聊天页 打开客服聊天页回调,参数为是否成功,true表示成功,false表示失败 是平台提供的小游戏客服能力 type:(1 :小 6 客服 2 : 抖音IM 客服(仅支持抖音))sessionFrom:(保留字段,暂时可以不填),例如{"type":1,"sessionFrom":"xxx"} 打开客服页面成功或者失败回调 通过客服页面发起支付 接口说明:https://bytedance.feishu.cn/docx/doxcnUkE86LjFTFdTJREIEGT9bb JsonData内容如下 buyQuantity number 必填 金币购买数量,金币数量必须满足:金币数量*金币单价 = 限定价格等级(详见下方 buyQuantity 限制说明。开发者可以在字节小游戏平台的“支付”tab 设置游戏币单价) customId string 必填 游戏开发者自定义的唯一订单号,订单支付成功后通过服务端支付结果回调回传 currencyType string 非必填 币种, 目前仅为"CNY" zoneId string 非必填 游戏服务区 id,默认值为1,开发者自定义。游戏不分大区则默认填写"1"。如果应用支持多角色,则角色 ID 接在分区 ID 后,用"_"连接 extraInfo string 非必填 游戏开发者自定义的其他信息,订单支付成功后通过服务端支付结果回调回传。字符串长度最大不能超过 256。(强烈建议传入) 打开客服页成功 打开客服聊天页回调,参数为是否成功,true表示成功,false表示失败 跳转到抖音视频 抖音视频videoId,复制抖音视频链接到浏览器即可得到 跳转结果,参数为是否成功,true表示成功,false表示失败 退出程序 是否显示退出提示对话框,true为在退出前显示二次提示对话框架,false则不显示对话框而直接退出程序 接口调用成功状态回调,true表示成功,false表示失败 重启小游戏 接口调用失败时的回调 获取系统信息。类似小程序开发平台 tt.getSystemInfoSync 接口返回值。 https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/device/system-information/tt-get-system-info-sync/ StarkSystemInfo 当前系统相关信息 开始监听加速度数据 加速度数据回调事件监听 接口调用状态回调,(bool success, string errMsg) => {} 停止监听加速度数据 接口调用状态回调,(bool success, string errMsg) => {} 获取陀螺仪接口 替换敏感词 要检查和替换的词语 回调 int: 返回状态码,0为成功,否则为失败 string: 错误信息 JsonData: audit_result int 1: 有敏感内容;0: 无敏感内容 audit_content string 被替换的内容(无敏感内容则返回值与传入的word相同) 获取键盘管理器(仅WebGL支持) StarkKeyboard 获取输入模块(仅 WebGL 支持) 宿主事件监听 创建一个 UDP Socket 实例。 操作剪切板 群聊相关操作 方向监听 屏幕相关操作 小程序/小游戏转化上报api 抖音云功能相关接口 可以参考 小游戏抖音云相关文档 https://developer.open-douyin.com/docs/resource/zh-CN/developer/tools/cloud/develop-guide/invoke-sever/cloud-sdk 侧边栏跳转相关接口 https://bytedance.feishu.cn/docx/NkzOdcUPXo02bdxl6zqcemGinzb 请求订阅消息 可以参考 小游戏相关文档 https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/open-capacity/subscribe-message/tt-request-subscribe-message/ 需要订阅的消息模板的 id 的集合,最多支持传入三个 tmplId 接口调用成功的回调函数 接口调用结束的回调函数(调用成功、失败都会执行) 接口调用结束的回调函数(调用成功、失败都会执行) 获取菜单按钮(右上角胶囊按钮)的布局位置信息。坐标信息以屏幕左上角为原点。 https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/api/interface/menu/tt-get-menu-button-layout/ JsonData width number 宽度,单位:px height number 高度,单位:px top number 上边界坐标,单位:px right number 右边界坐标,单位:px bottom number 下边界坐标,单位:px left number 左边界坐标,单位:px 获取系统字体,仅支持WebGL,AndroidNative方案无需调用此接口,使用默认字体时,便会自动使用系统自动字体。 字体资源回调,可为null,开发者需要做好兜底 自定义场景数据上报接口 场景ID,int或long类型登录抖音开放平台,进入「数据」-「性能分析」-「启动监控」-「启动场景配置」模块,进入添加事件场景,新建游戏的自定义启动场景。 游戏每次启动只可以上报一次 场景耗时,单位ms long类型 自定义维度数据,key在抖音开放平台获取。且序列化后长度不超过1024个字符 自定义指标数据,key在抖音开放平台获取。且序列化后长度不超过1024个字符 以上参数使用json格式传入,例如"{"sceneId":0,"costTime":10,"dimension":{},"metric":{}}" 接口调用成功的回调函数 接口调用失败的回调函数 接口调用结束的回调函数(调用成功、失败都会执行) 向用户请求授权允许游戏在满足一定的条件后出现在Feed流中 必须包含,type(strings)(订阅Feed流的类型),scene(int)订阅的场景ID(type='play'时必传))contentIDs(jsonArray) 自定义文案ID(type='play'时必传)),例如:{"type":"play","scene":111,"contentIDs":["xxxx"]} 接口调用成功的回调函数, 包含以下内容,errMsg(回调信息),success(用户的订阅结果(true为成功,false为订阅失败,具体原因看errMsg)) 接口调用失败的回调函数 接口调用结束的回调函数(调用成功、失败都会执行) 查询用户的授权情况。 必须包含,type(strings)(订阅Feed流的类型),scene(int)订阅的场景ID(type='play'时必传)),例如:{"type":"play","scene":1111} 接口调用成功的回调函数,包含以下内容,errMsg(回调信息),success(用户的订阅结果(true为已经订阅,false为用户未订阅)) 接口调用失败的回调函数 接口调用结束的回调函数(调用成功、失败都会执行) 获取直播间管理器对象 触控事件适配 挂载到 EventSystem 对象上以解决 WebGL 方案下多点触控时,部分触点 PointerUp 等事件丢失的问题。 当前脚本会通过重载 StandaloneInputModule,将全局鼠标/触控事件映射到 StarkSDK。 如果需要进一步重载 UnityEngine.Input,请参考 UnityInputOverride.cs。 如果不需要全局重载,可使用 StarkSDK.API.GetStarkInput() 手动挂载触控监听。 勾选 DebugTraceEnabled,可以打印更多调试日志。 仅在 WebGL 方案下生效;Native 和 Unity Editor 环境中不会有任何作用。 Android UI管理器 调用Android原生UI界面 Android Toast提示 类似于直接调用Toast.makeText(context, message, Toast.LENGTH_SHORT).show() 提示信息 Android Toast提示 类似于直接调用Toast.makeText(context, message, Toast.LENGTH_LONG).show() 提示信息 Android 弹出式对话框 标题 内容 确认按钮文本 取消按钮文本 对话框是否取消(点击空白区域关闭界面) 点击确认按钮回调 点击取消按钮回调 Android 进度加载弹窗 提示信息 Loading弹窗是否取消(点击空白区域关闭界面) Loading弹窗关闭回调 隐藏进度加载弹窗 以同步的隐藏一个弹框 Toast提示 提示信息 Toast提示 提示信息 `PlayerPrefs` is a class that stores Player preferences between game sessions. It can store string, float and integer values into the user’s platform registry. Sets a single integer value for the preference identified by the given key. You can use PlayerPrefs.GetInt to retrieve this value. Returns the value corresponding to key in the preference file if it exists. Sets the float value of the preference identified by the given key. You can use PlayerPrefs.GetFloat to retrieve this value. Returns the value corresponding to key in the preference file if it exists. Sets a single string value for the preference identified by the given key. You can use PlayerPrefs.GetString to retrieve this value. Returns the value corresponding to key in the preference file if it exists. Returns true if the given key exists in PlayerPrefs, otherwise returns false. Removes the given key from the PlayerPrefs. If the key does not exist, DeleteKey has no impact. Removes all keys and values from the preferences. Use with caution. Writes all modified preferences to disk. Unity声音录制 Unity层使用的接口 开始录屏 停止录屏 开启录制游戏声音 关闭录制游戏声音 设置录制分辨率 Unity层使用的接口 检查是否有多个ActiveAndEnable AudioListener Unity声音录制接口 Unity层使用的接口 Unity版本号,每对外升级一次,自增1,详情见 UnityRenderEvent的回调的指针,可以通过 录制图片 录制纹理 传递Unity前后台切换消息 录音,传递PCM的float数组 录音,传递PCM的byte数组 传递录音的配置参数,JSON格式 通知JNI DeAttach 当前线程,不然会引起crash 设置使用的音频引擎类型:0-unity,1-wwise plugin, 2-wwise mix 开始录屏 停止录屏 开启录制游戏声音 关闭录制游戏声音 声音采样间隔,单位毫秒 是否需要将PCM从float数组转为byte数组 是否在录制中 提供给Java端通过UnityPlayer.UnitySendMessage("ByteREC","NativeStopRecord","");来停止录屏 提供给Java端通过UnityPlayer.UnitySendMessage("ByteREC","NativeStartRecord","");来启动录屏 提供给Java端通过UnityPlayer.UnitySendMessage("ByteREC","StartRecord","");来触发录制 提供给Java端通过UnityPlayer.UnitySendMessage("ByteREC","NativeRecordVoice","");来设置是否录音 设置是否在Unity测转换PCM 支持外部注入RT进行录制 Unity声音录制 将数组添加到List里。 未知错误 D 表示 Developer 开发者逻辑导致的错误,例如参数错误,订单重复支付等 U 表示 User 用户操作导致的错误,例如用户未登录,用户未授权等 F 表示 Framework 内部框架错误 ,例如网络错误,参数错误等 I 表示 Information 用户使用过程中产生的过程信息,例如用户未登录,用户未授权等 错误信息 解析从字符串到 ErrorType 枚举类型。 D, U, F, I 中的一种 创建mock模块 获取游戏记录的Mock 获取广告的Mock 获取分享的Mock 收藏模块的Mock 获取账号模块的Mock 获取账号模块的Mock 本地音频播放管理器 创建 InnerAudioContext 音频资源 url 地址,也支持相对路径的地址。只支持 mp3、wav、m4a、aac 格式。 如果 url 地址是一个相对路径的地址,比如 Assets/Sound/music.mp3, 那么会自动根据配置的 url 前缀拼接为完整的url:${url_prefix}/Assets/Sound/music.mp3 有两种方法设置 url 前缀: 1. 构建 WebGL 时填写【游戏资源CDN】url 前缀,运行时会自动拼接为完整 url。 2. 通过调用 TTAudioManager.SetAudioUrlPrefix 函数设置 url 前缀。 如果同时填写了【游戏资源CDN】和调用了 TTAudioManager.SetAudioUrlPrefix 函数,默认优先使用构建时填写的【游戏资源CDN】url前缀。 开始播放的位置(单位:s) 是否自动播放 是否自动循环 当前音量,范围 0 ~ 1 播放速度。范围 0.5 ~ 2.0,默认为 1 是否需要下载,如果为true,则会完全下载后再触发OnCanplay 音频实例上下文对象,完成对音频播放 同时支持Android及WebGL平台,但如果是Android下播放mp3文件,Unity引擎需要为Unity2020.1.14f1及以上版本 监听音频进入可以播放状态,但不保证后面可以流畅播放 监听音频播放事件 监听音频暂停事件 监听音频停止播放事件 监听自然播放结束事件 监听音频播放出错事件, (errMsg) => {} 监听音频加载中事件,当音频因为数据不足,需要停下来加载时会触发 监听音频开始进行 seek 操作的事件 监听音频完成 seek 操作的事件 当前音频ID 获取音频时长,单位 s 获取当前播放时长,单位 s (由于WebGL底层实现方案的原因,只能将结果异步返回) (currentTime) => {} audioContext.GetCurrentTime(value => { Debug.Log($"audio currentTime: {value} s"); }); 获取当前音频是否是暂停状态 (由于WebGL底层实现方案的原因,只能将结果异步返回) (isPaused) => {} audioContext.GetBuffered(isPaused => { Debug.Log($"audio isPaused: {isPaused}"); }); 获取当前已缓冲的音频长度,单位 s (由于WebGL底层实现方案的原因,只能将结果异步返回) audioContext.GetBuffered(buffered => { Debug.Log($"audio buffered: {buffered} s"); }); 内部方法(请勿调用) 播放音频 同时支持Android及WebGL平台,但如果是Android下播放mp3文件,Unity引擎需要为Unity2020.1.14f1及以上版本 暂停播放 停止播放 销毁当前实例。销毁后该实例将不存在,如需播放需要再次创建 跳转到指定位置播放 音量。范围 0~1。默认为 1 静音,静音时将音量设置为 0,取消静音则恢复原来的音量 设置是否循环播放,默认为 false 记录已判断支持的函数 记录已判断不被支持的函数 Check if UNBridge android sdk is available Validate the native method before calling it 非Container环境下,都返回 true Replacement for UNbridge.Call native method object to be called Replacement for UNBridge.Call with callback native method object to be called callback object passed in 不使用Loom调用一个Android方法 目标接口 参数数据 同步Call通讯接口 消息类型0-call消息,1-listen消息,2-unlisten消息,3-event消息 目标接口 参数 Replacement for UNBridge.Call with callback native method object to be called Replacement for UNBridge.Call with callback with timeout native method object to be called callback object passed in callback timeout Replacement for UNBridge.CallSync, return primitive values; This API only support basic types: int, long, float, double, bool, string; Default(T) will return if return type not supported! Define Android code as following: @UNBridgeMethod(sync = true) public long testLong() { return 21474836470L; } Only valide for basic types: int, long, float, double, bool, string Native method object return value Special CallSync for IList return values; Define Android code as following: @UNBridgeMethod(sync = true) public List<String> testArrayString() { ... } Only valide for basic types: int, long, float, double, bool, string Special CallSync for IList return values; Define Android code as following: @UNBridgeMethod(sync = true) public Map<string, Long> testMapLong() { ... } Only valide for basic types: int, long, float, double, bool, string Native method object return value Convenient method to register c# API for Android 关注抖音的回调 data 内容 : { "errCode" : 0, 成功时为0 “errMsg” : "", errCode不为0时,描述错误原因 “hasFollowed” : true?false 关注抖音号结果 } errCode: CODE_ERROR = -1 CODE_NOT_SUPPORT = -2 CODE_NOT_LOGIN = -3 CODE_NO_ACTIVITY = -4 CODE_UID_ERROR = -5 关注回调,参数为是否关注 错误回调,参数为错误码 和 错误描述 创建快捷方式回调 data 内容 : { "errCode" : 0, 成功时为0 “errMsg” : "", errCode不为0时,描述错误原因 } errCode: 1 : 取消 创建回调,参数为是否成功 The android bridge of the Container SDK. 初始化整个链路完成后的异步回调 是否调用过 Init 是否已 InitComplete Init 异步任务结果,支持 Init 方法多次调用 是否在 TTContainer真机环境下 是否显示调试Toast提示。当调用 TTSDK 相关接口后,获得函数执行状态(主要是失败状态)的反馈。 设置为true则在调用 TTSDK 相关接口后,会自动弹出Toast提示。默认不显示。【建议只在调试状态下开启】 TT_UnitySDK初始化函数 error code : 0 , 无错误 1, tt unity sdk 版本不支持 2,unity engine 版本不被支持 判断是否运行在 TTContainer TTSDK 运行在错误的环境中 入口枚举 https://bytedance.feishu.cn/sheets/xChZZJiYfuC19iYtOv50yf#63rY26 https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/framework/scene-value/ Hostid 转换 对应关系 https://bytedance.feishu.cn/sheets/shtcn959RKBOao1tFJAwEBTI1lf HostEnum 从Java层传输来的数据和C#层的UC运行环境之间的转换 从Java层传输来的数据和C#层版本类型枚举做转换 当游戏第一次启动以及被其他游戏拉起,或者再次拉起时调用外部摄入的回调方法,并立即写入文件 本次启动是否由崩溃弹窗触发的重启,目前仅 IOS 可用 StarkSDK初始化时更新本次容灾记录 容灾时间戳文件。 目前是为了解决容灾恢复后又发生正常重启时 schema 中仍带有容灾讯号的情况。 将Json解析成互跳信息对象 是否可以使用 打印到文件 初始化打印文件的变量 结束打印 文件名称 是否需要打印栈信息 单例抽象类 在竖屏正方向下的安全区域 安全区域左上角横坐标 安全区域右下角横坐标 安全区域左上角纵坐标 安全区域右下角纵坐标 安全区域的宽度,单位逻辑像素 安全区域的高度,单位逻辑像素 机型性能评分 屏幕方向 竖屏 横屏 系统信息 当前宿主名,如 Douyin 当前宿主版本号,如 19.2.0 TTContainer 底层框架版本号 todo: TT 改名之后,这个字段名可能要改成 ttVersion TTContainer 底层框架版本号 ,如 Apple、samsung 手机设备制造商 手机品牌,如 iPhone 12、SM-G9880 操作系统,如 ios、android 系统版本,如 iOS 15.1.1、Android 11 系统语言,如 zh_CN 客户端基础库版本 设备像素比 屏幕高度,单位逻辑像素 屏幕宽度,单位逻辑像素 状态栏的高度 在竖屏正方向下的安全区域 机型性能评分 性能数组实体 判断是否运行在UC环境 埋点上报到app_log TODO : 分离 StarkInnelAPI 埋点上报到app_log TODO : 分离 StarkInnelAPI 读取Java侧UnityContainerConfigCenter中的配置字段,目前返回的泛型数据只支持基本类型 bool double float Int32 Int64 string 配置字段的类型 配置字段的key 当该配置字段不存在时返回该值 只埋点上报性能信息,由于性能信息一部分来自Java所以单独列出一个方法 告知Java侧这时候可以手机CPU信息了 新的上报游戏性能信息的接口 Custo onCommand method register Default onCommand register callback from onCommand panel Default onCommand 获取到当前的性能数据 更新需要上报的数据 当前统计到的最新的数据 计算平均表现 结果值 获取用户存档空间 判断当前 Container 版本是否大于等于给定的版本 主版本号 中间版本号 获取小游戏Settings, 适用版本 >= 5.31.0 获取的数据key 是否使用缓存 获取应用信息:schema、appid、接口黑白名单、应用版本、应用 pkg 类型、应用技术形态, 适用版本 > 5.32.0 是否需要session字段 游戏版本号是从AndroidManifest.xml解析出来 游戏发布版本号,发布版本时发布工具中指定的版本号 根据CI填写 Container的Version 是否 >= 目标版本号 转换服务端 返回的 json 数据, 主要处理 id 和 date 数据 指定要返回的字段 Field 示例 1. 指定返回doc中字段a,b, projection设置为{a: true, b:true} 2. 嵌套的字段 {a.b : true} 上传下载国产回调逻辑 RTC模块 账号模块 登录 检查当前session是否有效 获取当前的用户信息 判断用户是否已经授权给当前游戏读取个人信息 该API会调用宿主的代码,如果调用宿主代码成功则会调用onGetUserInfoAuth,并返回是否已经授权 如果调用宿主代码失败则会调用onGetUserInfoAuthFail 主动打开获取用户信息的授权界面 该API会调用宿主的代码,如果调用宿主代码成功则会调用onGetUserInfoAuth,并返回最新的授权状态 如果调用宿主代码失败则会调用onGetUserInfoAuthFail 用户在实名认证弹窗完成实名认证后回调 必须在游戏初始化阶段就调用 广告管理模块,请求,播放激励视屏广告 其他类型广告待实现 激励视频广告的暂存,for native 方式 设置激励视频广告的回调。获取完整的回调信息,一般处理都可以通过ShowVideoAd完成,评估必要性 已播放时长. video ad state. Usually only state of `VideoAdState.Loaded` means it is properly loaded. 根据广告错误判断是否需要retry 广告是否加载完成 初始化 请求加载激励视频广告 加载广告,并在某些错误情况下进行有限次重试 异步请求并显示广告 video ad state. Usually only state of `VideoAdState.Loaded` means it is properly loaded. 根据广告错误判断是否需要retry 广告是否加载完成 加载广告,并在某些错误情况下进行有限次重试 未进行视频裁剪 视频裁剪中 视频裁剪完成 视频裁剪失败 视频最大录制时长,单位s 开始录屏回调 录屏完成回调 录屏失败回调 录屏超时回调 视频裁剪成功回调 视频裁剪失败回调 视频分享成功回调 视频分享失败回调 视频分享取消回调 视频录制状态 视频裁剪状态 视频分享状态 录制完成后的视频路径 裁剪后的视频路径 自助配乐 录屏开启状态,-1未知,0未开启,1开启。 设置录屏是否开启 获取录屏开启状态 返回true则表示录屏开启,返回false为录屏关闭 开始录屏 是否录制声音,默认为录制声音 最大录制时长,单位 s。小于等于 0 则无限制。默认为10分钟 视频录制开始回调 视频录制失败回调 录屏超时回调 函数调用状态,调用成功返回true,否则返回false WebGL开始录屏 视频录制开始回调 视频录制失败回调 停止录屏 停止后需要对视频进行裁剪的时间片段,如果为null或空列表,则不对视频进行裁剪 视频录制完成回调 视频录制失败回调 是否对视频裁剪片段进行自动合并。 合并规则: 如果有两段重叠的时间片段,并且重叠部分小于等于1秒,则对这两段进行合并为一段 若autoMerge为true,比如时间片段为{[1000, 5000], [4000, 7000]},会被合并为{[1000, 7000]}。 若autoMerge为false,将按原始传入的时间片段进行裁剪,是否有重叠,由调用方保证。主要用于自定义裁剪。 函数调用状态,调用成功返回true,否则返回false 获取录屏时长 返回录屏时长,单位 ms 视频裁剪 需要裁剪的时间片段,允许为null或空列表,如果列表为null或空, 则默认使用RecordClip调用记录的时间片段,会对重合的时间进行合并,然后进行视频裁剪。 如果不为空,则按传入的裁剪片段进行视频裁剪,时间片段重叠不会进行合并。主要用于乱序拼接。 函数调用状态,调用成功返回true,否则返回false 分享视频 获取录屏状态 VideoRecordState 获取视频分享状态 VideoShareState 输入模块 触摸事件回调 是否注册了 JS 层的 Touch 事件 只有注册后,上层才能收到监听 设定触摸事件监听有变更 开始监听 JS 层触摸事件 停止监听 JS 层触摸事件 分发 JS 层触摸事件到注册的 Handler 监听 JS 层触摸事件 创建事件 Handler 实例 响应 UNBridge 回调 构造函数 获取上一次的拉起信息 判断自己本身是否被其他游戏拉起 初始化 跳转至某个游戏 保存导航信息 调用从互调返回时的回调函数 游戏id 游玩时间 额外数据 从服务器拉取互跳信息 保存一个互跳信息 游戏id 自定义的query值 额外数据 视频链接 这条互跳信息的来源 保存自定义信息,用于传递给上一个拉起自己的游戏 监听自己本身是否被其他游戏拉起 Dic的扩展方法 当游戏Activity#OnResume的方法被调用时调用该C#方法 账号模块 分享模块 抖音云模块 请求相关设置 网络请求方法,支持 GET/POST/OPTIONS/PUT/HEAD/DELETE 请求header Post 请求的参数 CloudId key 开发自己定义, value 是cloudId 数据, 相关key value 数据会被自动加到post 请求的body 中 请求响应 请求抖音云服务端接口 可以参考 小游戏抖音云相关文档 https://developer.open-douyin.com/docs/resource/zh-CN/developer/tools/cloud/develop-guide/invoke-sever/cloud-sdk 抖音云平台环境id 抖音云平台服务id 请求path 请求参数 成功回调 失败回调 获取抖音云文件访问地址 抖音云平台环境id 云文件path 最大有效期 成功回调 失败回调 抖音云文件删除 抖音云平台环境id 云文件path 成功回调 失败回调 抖音云文件上传 抖音云平台环境id 云文件path 需要传递绝对路径 上传进度回调 上传成功毁掉 上传失败回调 下载抖音云文件 抖音云平台环境id 云文件path 需要传递绝对路径 下载进度回调 下载成功毁掉 下载成功毁掉 返回抖音云操作数据库对象 返回一个 ServerDate 对象, 用于表示服务端时间, 可以用于插入数据或者 查询的条件判断 创建 DBCollection 对象 创建 DbCmd 对象 返回一个 逻辑 CMD 可以调用 AND OR NOR相关方法 基于 docid 获取单个文档 添加数据, 当前进支持单个添加 where 条件查询, 录入 a=1, a.b=1 多种条件同时查询, 具体支持请看 CloudDBCommand 设置查询结果返回的字段, a=true a.b=true 设置查询数据量限制 设置查询跳过的数量 设置查询的排序方式 获取查询结果 获取查询结果 使用 count 语句 基于设置的条件 更新数据 基于设置的条件 删除数据 数据库操作符 And 数据库操作符 Or 数据库操作 Not or 数据库操作符 = 数据库操作符 != 数据库操作符 < 数据库操作符 <= 数据库操作符 > 数据库操作符 >= 数据库操作符 in 数据库操作符 not in 获取抖音云数据单个文档数据 更新单个云文档数据 设置单个云文档数据, 仅会更新已有字段 删除单个云文档数据 OK 禁止录屏 录屏SDK未初始化 视频文件不存在 开始录屏错误 视频裁剪失败 视频分享失败 视频分享取消 视频文件异常 广告模块未初始化 广告ID为空 广告模块异常 广告加载失败 宿主枚举 入口枚举 IDE扫码 Container 的运行环境 Apk的版本环境 保存宿主环境变量 获取query字段,即小程序的启动参数,可能为空,使用时需判空 启动场景(该字段目前只有在「侧边栏」启动场景才会返回,返回的属性值为:homepage) 启动场景(该字段目前只有在「侧边栏」启动场景才会返回,返回的属性值为:homepage) 获取小程序启动时的参数,里面的参数可能为空,使用时需判空; 可以在TTSDK.init()之后调用,确保得到非空值 加速器数据回调 接入头条抖音能力的接口,在非宿主环境下,会对一些回调进行模拟 如果调用的函数在宿主版本不被支持,则会抛出异常 SDK版本号 游戏版本号,通过该接口替换Application.version获得正确的版本号信息 游戏发布版本号,发布版本时发布工具中指定的版本号 获取录屏相关接口 TTGameRecorder 提前向用户发出授权请求。该方法不会调用对应接口,只会弹框咨询用户是否授权或者获取用户信息。如果用户之前有授权,该接口直接返回成功,不会跟用户产生交互。 需要预授权的 scope,详见 https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/open-capacity/user-information/authorization/authorization/ 接口调用成功的回调函数 接口调用失败的回调函数 需要白名单 获取 RtcEngine 实例(包含音视频应用程序调用的主要方法的接口类实例),应当只调用一次。第二次调用getRtcEngine 时,实际获取的还是上次那个 RTCEngineManager 广告相关接口 TTAdManager 网络请求接口 TTRequest 控制sdk中的Log级别 获取小程序启动时的参数,里面的参数可能为空,使用时需判空; 可以在TTSDK.init()之后调用,确保得到非空值 账号模块 关注抖音号 需要在开发者平台-设置中绑定抖音号 完成打开抖音号的回调。涉及用户信息,无法获取用户是否关注了抖音号的状态 打开抖音号失败的回调。errCode: 当关注抖音号失败,是否显示Toast弹窗提示,默认显示 CODE_ERROR = -1 CODE_NOT_SUPPORT = -2 CODE_NOT_LOGIN = -3 CODE_NO_ACTIVITY = -4 CODE_UID_ERROR = -5 创建快捷方式 创建快捷方式回调,参数为是否成功,true表示成功,false表示失败 当创建失败,是否显示Toast弹窗提示,默认显示 快捷方式是否已经创建 是否存在的回调,参数表示是否已创建,true表示已创建,false表示未创建 可以配置震动周期的手机震动接口,单位ms 震动周期 like long[] pattern = {0, 100, 1000, 300}; 传入null则取消震动 重复次数,为-1则不重复 注意:WebGL平台下,只有两种震动:长和短。 pattern数组参数只能传入一个数值,传入小于1000则为短震动,否则为长震动。 不支持取消和重复。即repeat参数无效。 > 获取分享相关接口 是否已关注抖音号 是否关注的回调,参数表示是否已关注,true表示已关注,false表示未关注 是否在小程序开发者后台绑定了抖音号 是否绑定的回调,参数表示是否已绑定,true表示已绑定,false表示未绑定 获取收藏引导接口 接入sdk的debugpanel面板,注册一些debug命令的回调函数 支付服务接口 自定义分析数据上报接口,调用后,会将数据上报到小程序开发者平台,开发者可以在小程序开发者平台中查看上报数据。使用前,需要在小程序管理后台事件中新建事件,配置好事件名与字段。 可参考文档 https://microapp.bytedance.com/docs/zh-CN/mini-app/data/advanced-analysis/events 事件名 上报的数据,默认为null key : 配置中的字段名. value(number|string|boolean) : 上报的数据 保存游戏数据接口,所有游戏数据保存上限50M 数据名 可序列化的数据(存档类需标记为Serializable)[见以下的例子] 保存成功返回true,否则返回false [Serializable] class SaveData { public int IntValue = 99; private float FloatValue = 1.0f; public string StrValue = "My String"; public Dictionary<String,bool> map; public List<String> listStr; } SaveData sd = new SaveData(); sd.xx = yyy; bool ret = TTSDKInner.API.Save<SaveData>(sd); 加载游戏数据接口,返回数据类型需为Serializable 数据名 SaveData loaded = TTSDKInner.API.LoadSaving<SaveData>(); 删除游戏数据接口 数据名 TTSDKInner.API.DeleteSaving<SaveData>(); 删除所有游戏数据 获取游戏数据磁盘总大小 数据名 获取游戏跳转模块 打开客服聊天页 打开客服聊天页回调,参数为是否成功,true表示成功,false表示失败 是平台提供的小游戏客服能力 type:(1 :小 6 客服 2 : 抖音IM 客服(仅支持抖音))sessionFrom:(保留字段,暂时可以不填),例如{"type":1,"sessionFrom":"xxx"} 打开客服页面成功或者失败回调 通过客服页面发起支付 接口说明:https://bytedance.feishu.cn/docx/doxcnUkE86LjFTFdTJREIEGT9bb JsonData内容如下 buyQuantity number 必填(道具直购场景除外)金币购买数量,金币数量必须满足:金币数量*金币单价 = 限定价格等级(详见下方 buyQuantity 限制说明。开发者可以在字节小游戏平台的“支付”tab 设置游戏币单价) customId string 必填 游戏开发者自定义的唯一订单号,订单支付成功后通过服务端支付结果回调回传 currencyType string 非必填 币种, 目前仅为"CNY" zoneId string 非必填 游戏服务区 id,默认值为1,开发者自定义。游戏不分大区则默认填写"1"。如果应用支持多角色,则角色 ID 接在分区 ID 后,用"_"连接 extraInfo string 非必填 游戏开发者自定义的其他信息,订单支付成功后通过服务端支付结果回调回传。字符串长度最大不能超过 256。(强烈建议传入) goodType number 非必填(道具直购场景必填) 默认游戏币。 游戏币:0 | 1,道具直购:2。若goodType为道具直购场景,不可传buyQuantity orderAmount number 非必填(道具直购场景必填) 道具价格,人民币,单位分 goodName string 非必填 道具名称 打开客服页成功 打开客服聊天页回调,参数为是否成功,true表示成功,false表示失败 跳转到抖音视频 抖音视频videoId,复制抖音视频链接到浏览器即可得到 跳转结果,参数为是否成功,true表示成功,false表示失败 退出程序 是否显示退出提示对话框,true为在退出前显示二次提示对话框架,false则不显示对话框而直接退出程序 接口调用成功状态回调,true表示成功,false表示失败 重启小游戏 接口调用失败时的回调 获取系统信息。类似小程序开发平台 tt.getSystemInfoSync 接口返回值。 https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/device/system-information/tt-get-system-info-sync/ TTSystemInfo 当前系统相关信息 开始监听加速度数据 加速度数据回调事件监听 接口调用状态回调,(bool success, string errMsg) => {} 停止监听加速度数据 接口调用状态回调,(bool success, string errMsg) => {} 获取陀螺仪接口 替换敏感词 要检查和替换的词语 回调 int: 返回状态码,0为成功,否则为失败 string: 错误信息 JsonData: audit_result int 1: 有敏感内容;2: 无敏感内容 audit_content string 被替换的内容(无敏感内容则返回值与传入的word相同) 获取键盘管理器(仅WebGL支持) TTKeyboard 获取输入模块(仅 WebGL 支持) 宿主事件监听 创建一个 UDP Socket 实例。 操作剪切板 群聊相关操作 方向监听 屏幕相关操作 小程序/小游戏转化上报api 抖音云功能相关接口 可以参考 小游戏抖音云相关文档 https://developer.open-douyin.com/docs/resource/zh-CN/developer/tools/cloud/develop-guide/invoke-sever/cloud-sdk 侧边栏跳转相关接口 https://bytedance.feishu.cn/docx/NkzOdcUPXo02bdxl6zqcemGinzb 请求订阅消息 可以参考 小游戏相关文档 https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/open-capacity/subscribe-message/tt-request-subscribe-message/ 需要订阅的消息模板的 id 的集合,最多支持传入三个 tmplId 接口调用成功的回调函数 接口调用结束的回调函数(调用成功、失败都会执行) 接口调用结束的回调函数(调用成功、失败都会执行) 获取菜单按钮(右上角胶囊按钮)的布局位置信息。坐标信息以屏幕左上角为原点。 https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/api/interface/menu/tt-get-menu-button-layout/ JsonData width number 宽度,单位:px height number 高度,单位:px top number 上边界坐标,单位:px right number 右边界坐标,单位:px bottom number 下边界坐标,单位:px left number 左边界坐标,单位:px 自定义场景数据上报接口 场景ID,int或long类型登录抖音开放平台,进入「数据」-「性能分析」-「启动监控」-「启动场景配置」模块,进入添加事件场景,新建游戏的自定义启动场景。 游戏每次启动只可以上报一次 场景耗时,单位ms long类型 自定义维度数据,key在抖音开放平台获取。且序列化后长度不超过1024个字符 自定义指标数据,key在抖音开放平台获取。且序列化后长度不超过1024个字符 以上参数使用json格式传入,例如"{"sceneId":0,"costTime":10,"dimension":{},"metric":{}}" 接口调用成功的回调函数 接口调用失败的回调函数 接口调用结束的回调函数(调用成功、失败都会执行) 获取系统字体,仅支持WebGL,AndroidNative方案无需调用此接口,使用默认字体时,便会自动使用系统自动字体。 字体资源回调,可为null,开发者需要做好兜底 向用户请求授权允许游戏在满足一定的条件后出现在Feed流中 必须包含,type(strings)(订阅Feed流的类型),scene(int)订阅的场景ID(type='play'时必传))contentIDs(jsonArray) 自定义文案ID(type='play'时必传)),例如:{"type":"play","scene":111,"contentIDs":["xxxx"]} 接口调用成功的回调函数, 包含以下内容,errMsg(回调信息),success(用户的订阅结果(true为成功,false为订阅失败,具体原因看errMsg)) 接口调用失败的回调函数 接口调用结束的回调函数(调用成功、失败都会执行) 查询用户的授权情况。 必须包含,type(strings)(订阅Feed流的类型),scene(int)订阅的场景ID(type='play'时必传)),例如:{"type":"play","scene":1111} 接口调用成功的回调函数,包含以下内容,errMsg(回调信息),success(用户的订阅结果(true为已经订阅,false为用户未订阅)) 接口调用失败的回调函数 接口调用结束的回调函数(调用成功、失败都会执行) 获取直播间管理器对象 获取小游戏管理更新对象 加速器数据回调 RTC连麦接口模块 rtc 连麦 接口文档:https://bytedance.feishu.cn/docx/doxcnKNEvQGmLTwupIvWDSqh1nd 需要白名单 获取 RtcEngine 实例(包含音视频应用程序调用的主要方法的接口类实例),应当只调用一次, 重复调用返回上次创建的,destroy后则重新创建。 rtc服务使用的appId, 不是你的游戏的appid 销毁EtcEngine实例 成功回调 失败回调 加入到通信房间 加入语音频道的id 加入语音频道用户的唯一标识,建议统一使用当前用户的 openId/匿名 openId 加入房间的accessToken 成功回调 失败回调 离开当前频道 成功回调 失败回调 执行结果,true为成功,false为失败 开启内部音频采集。默认为关闭状态。 成功回调 失败回调 执行结果,true为成功,false为失败 关闭本地麦克风推流 成功回调 失败回调 执行结果,true为成功,false为失败 控制本地音频流的发送状态:不发送 使用此方法后,房间中的其他用户会收到回调: OnUserMuteAudio 执行结果,true为成功,false为失败 控制本地音频流的发送状态:发送 使用此方法后,房间中的其他用户会收到回调: OnUserMuteAudio 成功回调 失败回调 执行结果,true为成功,false为失败 针对当前设备,静音远端用户音频流 语音频道用户的唯一标识 成功回调 失败回调 执行结果,true为成功,false为失败 针对当前设备,取消静音远端用户音频流 语音频道用户的唯一标识 成功回调 失败回调 执行结果,true为成功,false为失败 针对当前设备,静音所有远端用户音频流 成功回调 失败回调 执行结果,true为成功,false为失败 针对当前设备,取消静音所有远端用户音频流 成功回调 失败回调 执行结果,true为成功,false为失败 调节播放音量(该方法只能加入房间成功后调用才生效) 音量可在0~400范围内进行调节 - 0 : 静音 - 100 : 原始音量 - 400 : 最大可为原始音量的 2 倍(自带溢出保护) 成功回调 失败回调 执行结果,true为成功,false为失败 调节录音音量,采集麦克风的音量(该方法只能加入房间成功后调用才生效) 音量可在0~400范围内进行调节 - 0 : 静音 - 100 : 原始音量 - 400 : 最大可为原始音量的 2 倍(自带溢出保护) 成功回调 失败回调 执行结果,true为成功,false为失败 该方法启用说话者音量提示。调用该方法后,将收到 audioVolumeIndication 事件回调。该方法只有在joinChannel之后才生效 收到音量提示回调的时间间隔 + ≤ 0:禁用音量提示功能。 + > 0:启用音量提示功能,并设置收到音量提示回调的时间间隔。单位为毫秒。 建议设置为大于等于 200 毫秒;小于 10 毫秒时,行为未定义。 成功回调 失败回调 执行结果,true为成功,false为失败 取消 RtcEngine,on 监听的所有event类型事件。 监听列表 首次加入房间成功。用户手动调用 JoinRoom,收到加入成功。 加入房间失败没有单独的事件,需要通过onerror 判断 重新加入房间。用户网络较差,失去与服务器的连接,进行重连时收到加入成功。 当收到网络质量报告时回调该事件 远端可见用户加入房间的回调。 远端可见用户断网后重新连入房间时,房间内其他用户将收到该事件。 新进房用户会收到进房前已在房内的可见用户的进房回调通知。 远端可见用户离开房间,包含断网情况 rtc连接断开。和connectionLost类似,不过该方法是断开后立即触发 网络连接断开超过 10 秒,仍然会继续重连。该事件和上面事件在类似,不过是超过10s 后触发 当收到本地第一帧音频的时候上报该事件 接收到来自远端某音频流的第一帧时,收到该回调。 用户刚收到房间内每一个用户音频流时,都会收到该回调。 远端用户调用 muteLocalAudioStream 改变本地音频推流状态时,房间内其他用户会收到此回调。 @param muted 是否被静音 true: 远端用户禁止推送音频数据; false: 远端用户开启推送音数据 远端用户enableLocalAudio/disableLocalAudio 开启/关闭音频设备采集时,房间内其他人会收到这个回调。 userMuteAudio 和 userEnableLocalAudio 分别代表开/关 本地麦克风采集 和开/关 推送本地数据。 之所以有这样的区分,是因为 开/关 本地麦克风采集成本 的远大于 开/关 推送本地数据。因为麦克风采集需要调用系统接口,而 开/关推送数据只是标识位的改变。 enabled 用户是否开启了音频设备采集 true: 远端用户禁止推送音频数据; false: 远端用户开启推送音数据 当收到音量信息时回调该事件,需要调用 enableAudioVolumeIndication 后才可以 对于本地用户:只要进行本地音频采集,回调内就会包含本地音频流的音量信息。 对于远端用户:本地必须订阅某远端用户的音频流,回调内才会包含其发送的音频流的音量信息。 当内部发生警告信息时回调该事件 当内部发生不可逆转测错误时回调,比如加入房间失败 首次加入房间成功。用户手动调用 JoinRoom,收到加入成功。 加入房间失败没有单独的事件,需要通过onerror 判断 从调用joinChannel开始到加入房间成功所经历的时间(毫秒单位) 重新加入房间。用户网络较差,失去与服务器的连接,进行重连时收到加入成功。 从用户掉线掉重新加入房间成功经历的时间(毫秒单位) 当收到网络质量报告时回调该事件 远端通话用户标识 所属用户的媒体流上行网络质量 所属用户的媒体流下行网络质 远端可见用户加入房间的回调。 远端可见用户断网后重新连入房间时,房间内其他用户将收到该事件。 新进房用户会收到进房前已在房内的可见用户的进房回调通知。 远端通话用户标识 从加入房间到收到该事件经历的时间(毫秒单位) 远端可见用户离开房间,包含断网情况。 离线用户的标识 用户离线的原因 0, quit normal , 1, user lost rtc连接断开。和connectionLost类似,不过该方法是断开后立即触发 网络连接断开超过 10 秒,仍然会继续重连。该事件和上面事件在类似,不过是超过10s 后触发 当收到本地第一帧音频的时候上报该事件 返回StreamIndex: 0-视频流;1-屏幕流 当收到本地第一帧音频的时候上报该事件 远端通话用户标识 返回StreamIndex: 0-视频流;1-屏幕流 远端用户调用 muteLocalAudioStream, 改变本地音频推流状态时,房间内其他用户会收到此回调。 远端通话用户标识 是否被静音 true: 远端用户禁止推送音频数据 false: 远端用户开启推送音数据 远端用户enableLocalAudio/disableLocalAudio 开启/关闭音频设备采集时,房间内其他人会收到这个回调。 userMuteAudio 和 userEnableLocalAudio 分别代表开/关 本地麦克风采集 和开/关 推送本地数据。 之所以有这样的区分,是因为 开/关 本地麦克风采集成本 的远大于 开/关 推送本地数据。因为麦克风采集需要调用系统接口,而 开/关推送数据只是标识位的改变。 远端通话用户标识 用户是否开启了音频设备采集 true: 远端用户允许开启音频设备 false: 远端用户禁止开启音频设备 当收到音量信息时回调该事件,需要调用 enableAudioVolumeIndication 后才可以。 对于本地用户:只要进行本地音频采集,回调内就会包含本地音频流的音量信息。 对于远端用户:本地必须订阅某远端用户的音频流,回调内才会包含其发送的音频流的音量信息。 用户id 音量大小,范围[0,255] 音频源数量 当内部发生警告信息时回调该事件 警告码,详情查看 https://bytedance.feishu.cn/docx/doxcnKNEvQGmLTwupIvWDSqh1nd 当内部发生不可逆转测错误时回调,比如加入房间失败 错误码,详情查看 https://bytedance.feishu.cn/docx/doxcnKNEvQGmLTwupIvWDSqh1nd 首次加入房间成功。用户手动调用 JoinRoom,收到加入成功。 重新加入房间。用户网络较差,失去与服务器的连接,进行重连时收到加入成功。 当收到本地第一帧音频的时候上报该事件 当收到本地第一帧音频的时候上报该事件 远端用户调用 muteLocalAudioStream, 改变本地音频推流状态时,房间内其他用户会收到此回调。 远端用户enableLocalAudio/disableLocalAudio 开启/关闭音频设备采集时,房间内其他人会收到这个回调。 远端可见用户加入房间的回调 远端可见用户离开房间,包含断网情况。 远端用户enableLocalAudio/disableLocalAudio 开启/关闭音频设备采集时,房间内其他人会收到这个回调。 rtc连接断开。和connectionLost类似,不过该方法是断开后立即触发 网络连接断开超过 10 秒,仍然会继续重连。该事件和上面事件在类似,不过是超过10s 后触发 当收到音量信息时回调该事件,需要调用 enableAudioVolumeIndication 后才可以。 当内部发生警告信息时回调该事件 当内部发生不可逆转测错误时回调,比如加入房间失败 当前的登录状态 登录后获取登录的用户信息 https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/open-capacity/user-information/authorization/authorization/ 是否授权用户信息 对应接口:tt.getUserInfo 是否授权地理位置 对应接口:tt.getLocation 是否授权录音功能 对应接口:tt.getRecorderManager.start 是否授权保存到相册 对应接口:tt.saveImageToPhotosAlbum, tt.saveVideoToPhotosAlbum 是否授权摄像头 对应接口:tt.scanCode, tt.chooseImage, tt.chooseVideo 是否授权录屏,默认为开。在 onError 里面报错到没有录屏权限时,可以尝试主动调用 对应接口:tt.getGameRecorderManager 是否授权添加日历事件 对应接口:tt.addPhoneCalendar 用户权限授权结果 代码示例 1:检查用户是否已授权指定权限: ``` if (AuthSetting.UserInfo) { Debug.Log($"用户已授权 UserInfo 权限。"); } else { Debug.Log($"用户未授权过或已拒绝 UserInfo 权限。"); } ``` 代码示例 2:检查用户已授权、拒绝或未授权过指定权限: ``` var scope = AuthorizeScope.UserInfo; if (AuthSetting.TryGetValue(scope, out var authorized)) { if (authorized) { Debug.Log($"用户已授权 {scope} 权限。"); } else { Debug.Log($"用户已拒绝 {scope} 权限。"); } } else { Debug.Log($"用户未授权过 {scope} 权限。"); } ``` 是否授权用户信息 对应接口:tt.getUserInfo 是否授权地理位置 对应接口:tt.getLocation 是否授权录音功能 对应接口:tt.getRecorderManager.start 是否授权保存到相册 对应接口:tt.saveImageToPhotosAlbum tt.saveVideoToPhotosAlbum 是否授权摄像头 对应接口:tt.scanCode tt.chooseImage tt.chooseVideo 是否授权录屏,默认为开。在 onError 里面报错到没有录屏权限时,可以尝试主动调用 对应接口:tt.getGameRecorderManager 是否授权添加日历事件 对应接口:tt.addPhoneCalendar 需获取的抖音权限在授权弹窗中的默认状态 必选项(用户无法取消) 非必选,默认选中 非必选,默认不选中 账号系统 登录成功 临时登录凭证, 有效期 3 分钟。可以通过在服务器端调用 登录凭证校验接口 换取 openid 和 session_key 等信息。 用于标识当前设备, 无论登录与否都会返回, 有效期 3 分钟 判断在当前 APP(头条、抖音等)是否处于登录状态 登录失败 错误消息 检查Session接口调用失败的回调函数 错误原因 接口调用成功的回调函数 获取用户信息失败的回调 失败信息 获取用户信息成功的回调 目标用户信息 用户实名认证成功的回调 判断当前用户是否已经授权给游戏读取自身的信息 是否授权 调用接口判断当前用户是否已经授权时失败或者发生内部错误 获取用户已经授权过的配置时,接口调用成功的回调函数。 授权结果 获取用户已经授权过的配置时,接口调用失败的回调函数。 打开设置页面,返回用户设置过的授权结果时,接口调用成功的回调函数。 授权结果 打开设置页面,返回用户设置过的授权结果时,接口调用失败的回调函数。 实名认证窗口拉起成功回调 实名认证窗口拉起失败回调 "access:fail " + 详细错误信息 展示抖音权限授权弹窗成功回调 回调信息 请求授权返回的票据,此处对标开放平台的 authCode 用户授权的权限 展示抖音权限授权弹窗失败回调 错误码 错误信息 登录-获取临时登录凭证 强制登录默认为true,即若当前未登录宿主,则会调起宿主的登录窗口, 如果用户点击取消则会调用 fail 如果当前登录宿主,则直接返回success,获取到 code 和 anonymousCode 若强制登录为false,当前登录了宿主则会返回success,可以获取到获取到 code 和 anonymousCode 当前未登录宿主,则只有 anonymousCode code 可以换取 openid, openid 是用户的唯一标识 anonymousCode 可以换取 anonymous_openid, 同一台手机 anonymous_openid 是相同的 未登录时, 是否强制调起登录框 登录成功的回调 登陆失败的回调 检查用户当前的 session 状态是否有效 只有成功调用 login 才会生成 session,checkSession 才会进入 success 回调,当用户退出登录会清除 session session_key 会随着login接口的调用被刷新。可以通过checkSession方法验证当前 session 是否有效,从而避免频繁登录。 目前实际测试若使用匿名登录(forceLogin = false),则checkSession会一直返回 fail 只有登录了宿主(forceLogin = true),checkSession才会返回success,下次不用login checkSession也可以返回true 验证有效的回调 验证无效或者验证失败的回调 获取已登录用户的基本信息或特殊信息 若匿名登录后 userinfo里面字段全部为默认值 登录了宿主后可以获取账号数据,下次不用login GetUserInfo 也可以返回正确数据 获取用户信息成功的回调 获取用户信息失败的回调 判断用户是否已经授权给当前游戏读取个人信息 该API会调用宿主的代码,如果调用宿主代码成功则会调用onGetUserInfoAuth,并返回是否已经授权 如果调用宿主代码失败则会调用onGetUserInfoAuthFail 调用宿主代码成功,并返回是否已经授权读取用户信息 调用宿主代码时发生错误 主动打开获取用户信息的授权界面,在Setting界面关闭后返回最新的授权状态,该方法没有超时时间 该API会调用宿主的代码,如果调用宿主代码成功则会调用onGetUserInfoAuth,并返回最新的授权状态 如果调用宿主代码失败则会调用onGetUserInfoAuthFail 获取用户已经授权过的配置。 结果中只会包含向用户请求过的权限。 与 OpenSetting 的区别是 GetSetting 只会获取配置,而不会打开配置页面。 接口调用成功的回调函数 接口调用失败的回调函数 打开设置页面,返回用户设置过的授权结果。 结果中只会包含用户请求过的权限。 与 GetSetting 的区别是,OpenSetting 会打开设置页面,而 GetSetting 只会返回用户授权的设置信息。 接口调用成功的回调函数 接口调用失败的回调函数 用户在实名认证弹窗完成实名认证后回调 需要在初始化时设置,回调时机为:游戏中弹出实名认证,用户完成了实名认证时触发 获取已登录用户的基本信息或特殊信息 若匿名登录后 userinfo里面字段全部为默认值 登录了宿主后可以获取账号数据,下次不用login GetUserInfo 也可以返回正确数据 是否获取加密信息以及 CloudId 验证有效的回调 验证无效或者验证失败的回调 获取已登录用户的基本信息或特殊信息 若匿名登录后 userinfo里面字段全部为默认值 登录了宿主后可以获取账号数据,下次不用login GetScUserInfo也可以返回正确数据 是否获取加密信息以及 CloudId 是否需要返回用户实名认证状态,如果是则在成功回调参数中额外返回 `realNameAuthenticationStatus` 字段 验证有效的回调 验证无效或者验证失败的回调 拉起实名认证窗口。 注意:调用该接口前请确保用户已登录。 实名认证窗口拉起成功回调 实名认证窗口拉起失败回调 提供小游戏获取抖音权限的能力,展示出抖音权限授权弹窗。 在使用在接口前,需要小游戏拥有者登录抖音开发平台申请开通小游戏需要的权限。 需要获取权限的信息,其中 key 值是申请权限的 scope,value 值必须是 0,1,2(此处申请的权限在抖音开放平台必须是已开通状态) 展示抖音权限授权弹窗成功回调 展示抖音权限授权弹窗失败回调 BannerAd 对象 显示。如果加载出错,会调用CreateBannerAd的参数 errCallback 隐藏 销毁 改变样式 成功后会调用CreateBannerAd的参数 resizeCallback 横屏下可以更改位置和宽度,竖屏下只能更改位置。 样式:"style":{"top":0, "left":0, "width":128}} 是否有效,bannerad在load出错的情况下,如果adInterval为-1,则无法再进行刷新。此时认为已失效,需要destroy再重新创建 InterstitialAd 对象 加载 显示 是否已加载 销毁 Banner样式 广告位区域左上角横坐标 广告位区域左上角纵坐标 广告位区域宽度 广告位区域高度,受广告内容影响自主变化, 无法由外部指定 广告的回调函数 广告加载成功 广告播放成功,Unity测触发该回调时间不准确,具体触发Show的时间参考返回毫秒时间戳 广告失败,错误码同 ShowVideoAd 广告关闭回调 已播放时长. 有效播放时长(超过此时长可以授予激励). 视频总时长. 加载 显示 销毁 广告管理模块 支持激励视屏,banner 和 插屏广告。 开通指南:https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/functional-plug-in/advertising-component-access-guide/flow-main-open-process/ 是否显示广告加载提示,默认显示 展示激励视频广告,在广告未加载时会发起异步请求,弱网情况下会进行重试。失败会调用errCallback 激励视频广告只支持一个实例,申请多个激励视频广告位是无效的 简单回调设置,激励视频完成和错误的回调函数 与 SetVideoAdCallBack 不冲突,在结束时都会被调用到,会同时收到close和complete 错误码由sdk传出,原因参考 https://bytedance.feishu.cn/docs/doccn1lAbZzMOqI5ueq1gCyPdcg# https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/open-capacity/ads/ads-error-code-description/ https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/ads/tt-create-interstitial-ad 1004 可能是由于广告请求被限制了次数,需要跟广告投放沟通 如果需要更详细的回调信息,可使用 SetVideoAdCallBack 广告aid. 视频广告关闭回调,参数含义 IsComplete,表明广告是否播放完成. 视频广告错误回调,参数含义 errCode, errMsg 表明错误码和错误描述. 视频广告详细过程回调,一般可以不关注. 再得添加 https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/open-capacity/ads/rewardagainintroduce 是否开启再得广告模式(只支持安卓系统的抖音和抖音极速版) 再得广告的奖励文案,玩家每看完一个广告都会展示,如【再看1个获得xx】xx就multitonRewardMsg中的文案,按顺序依次展示,单个文案最大长度为 7,multiton为true时必填 额外观看广告的次数,合法的数据范围为1-4,multiton为true时必填 是否开启进度提醒,开启时广告文案为【再看N个获得xx】,关闭时为【 再看1个获得xx】。N表示玩家当前还需额外观看广告的次数。 展示激励视频广告,在广告未加载时会发起异步请求,弱网情况下会进行重试。失败会调用errCallback 激励视频广告只支持一个实例,申请多个激励视频广告位是无效的 简单回调设置,激励视频完成和错误的回调函数 与 SetVideoAdCallBack 不冲突,在结束时都会被调用到,会同时收到close和complete 错误码由sdk传出,原因参考 https://bytedance.feishu.cn/docs/doccn1lAbZzMOqI5ueq1gCyPdcg# https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/open-capacity/ads/ads-error-code-description/ https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/ads/tt-create-interstitial-ad 1004 可能是由于广告请求被限制了次数,需要跟广告投放沟通 如果需要更详细的回调信息,可使用 SetVideoAdCallBack 广告aid. 视频广告关闭回调,参数含义 IsComplete,表明广告是否播放完成. 视频广告错误回调,参数含义 errCode, errMsg 表明错误码和错误描述. 视频广告详细过程回调,一般可以不关注. 创建激励视频广告,在广告未加载时会发起异步请求,弱网情况下会进行重试。失败会调用errCallback 激励视频广告只支持一个实例,申请多个激励视频广告位是无效的 简单回调设置,激励视频完成和错误的回调函数 错误码由sdk传出,原因参考 https://bytedance.feishu.cn/docs/doccn1lAbZzMOqI5ueq1gCyPdcg# https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/open-capacity/ads/ads-error-code-description/ https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/ads/tt-create-interstitial-ad 1004 可能是由于广告请求被限制了次数,需要跟广告投放沟通 如果需要更详细的回调信息,可使用 SetVideoAdCallBack 广告aid. 视频广告关闭回调,参数含义 IsComplete,表明广告是否播放完成. 视频广告错误回调,参数含义 errCode, errMsg 表明错误码和错误描述. 视频广告详细过程回调,一般可以不关注. /// 再得添加 https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/open-capacity/ads/rewardagainintroduce 是否开启再得广告模式(只支持安卓系统的抖音和抖音极速版) 再得广告的奖励文案,玩家每看完一个广告都会展示,如【再看1个获得xx】xx就multitonRewardMsg中的文案,按顺序依次展示,单个文案最大长度为 7,multiton为true时必填 额外观看广告的次数,合法的数据范围为1-4,multiton为true时必填 是否开启进度提醒,开启时广告文案为【再看N个获得xx】,关闭时为【 再看1个获得xx】。N表示玩家当前还需额外观看广告的次数。 创建Banner广告,返回 BannerAd 实例。支持多实例,可以在一个页面下展示多个。也可以分页面展示 竖屏情况下,Banner广告接受的宽度范围是 0.8*屏幕宽度,1.0*屏幕宽度。 横屏情况下,Banner广告接受的最小宽度是 128,最大宽度是 208。 开发者可以在这之间自由指定广告宽度。广告组件会自动等比例缩放素材。 创建Banner示例后,要主动调用show来进行展示 错误码由sdk传出,原因参考 https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/api/ads/tt-create-banner-ad banner广告位的adid 样式:"style":{"top":0, "left":0, "width":320}} width 在竖屏下会被限制在 [0.8*ScreenWidth,1.0*ScreenWidth],横屏下会被限制在[128, 208] 广告自动刷新的间隔时间,单位为秒,参数值必须大于等于 30(该参数不传入时 Banner 广告不会自动刷新). 广告错误回调,参数表明错误码和错误描述. 广告加载回调. 广告样式改变回调,第一个参数是width.第二个参数是height. 广告关闭回调,仅在WebGL有效 创建并播放插屏广告,在广告模块启动15s内不允许展示插屏广告 两个插屏广告展示间隔不能少于30s 插屏广告支持多实例。简单回调设置,插屏广告完成和错误的回调函数 插屏广告实例只支持展示一次,出现加载错误,或 展示成功,点击关闭按钮或视频广告外的其他地方,广告实例都会自动销毁。下一次需再次创建。 提供接口可以手动销毁 错误码由sdk传出,原因参考 https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/api/ads/tt-create-interstitial-ad 插屏广告位的adid 广告视频错误回调,参数含义 errCode, errMsg 表明错误码和错误描述. 广告视频关闭回调. 广告加载回调. --------------------------------------------------------------------- 设置激励视频广告的回调。获取完整的回调信息,一般处理都可以通过ShowVideoAdWithId完成,需要时使用 激励视频广告的回调. 是否显示广告加载进度弹窗 游戏切到前台事件 游戏切到后台事件 监听游戏切到后台,统一所有平台 监听游戏到前台,统一所有平台,携带参数的格式为字典,可以根据指定key获取指定数据 https://bytedance.feishu.cn/docx/NkzOdcUPXo02bdxl6zqcemGinzb 监听游戏退出 返回值为true,则表示由开发者自行处理退出逻辑,可以调用 TTSDK.API.ExitApp来手动退出游戏。返回值为false,则默认退出游戏。 设置剪切板信息 设置的内容 bool = true设置成功,反则关注错误信息 获取剪切板信息 bool = true获取成功,value为内容,反则关注错误信息 礼包类型id 用户在获取到礼包兑换码进入游戏后,发起核销兑换码的动作,开发者需要使用本接口校验礼包兑换码的有效性。校验通过后才可以发放对应礼包 礼包状态,init:待使用,finish:已核销,cancel 已取消 错误信息 支付时间 礼包详情(若为礼包购买) 必填(道具直购场景除外) 金币购买数量,金币数量必须满足:金币数量*金币单价 = 限定价格等级(详见下方 buyQuantity 限制说明。开发者可以在字节小游戏平台的“支付”tab 设置游戏币单价) 必填 游戏开发者自定义的唯一订单号,订单支付成功后通过服务端支付结果回调回传 非必填 币种, 目前仅为"CNY" 非必填 游戏服务区 id,默认值为1,开发者自定义。游戏不分大区则默认填写"1"。如果应用支持多角色,则角色 ID 接在分区 ID 后,用"_"连接 非必填 游戏开发者自定义的其他信息,订单支付成功后通过服务端支付结果回调回传。字符串长度最大不能超过 256。(强烈建议传入) 非必填(道具直购场景必填) 默认游戏币。 游戏币:0 | 1,道具直购:2。若goodType为道具直购场景,不可传buyQuantity 非必填(道具直购场景必填) 道具价格,人民币,单位分 非必填 道具名称 非必填 (礼包场景必填)礼包Id OpenAwemeCustomer 成功回调 OpenAwemeCustomer 失败回调 接口调用完成回调 开始监听设备方向变化 "监听设备方向的变化回调函数的执行频率,game 适用于更新游戏的回调频率,在 20ms/次 左右,ui 适用于更新 UI 的回调频率,在 60ms/次 左右,normal 普通的回调频率,在 200ms/次 左右" 停止监听设备方向变化 监听设备方向变化事件 顶部弹窗 底部弹窗 顶部气泡 游戏收藏 收藏回调,true表示成功,false表示失败 取消游戏收藏 取消收藏回调,true表示成功,false表示失败 游戏是否已收藏 是否已收藏,true表示已收藏,false表示未收藏 收藏引导 弹窗类型,默认为底部弹窗 弹窗文案,仅style为 Tip 时可修改,最多显示 12 个字符。 调起引导用户复访的提示弹窗,目前仅抖音宿主支持。 为了更好的玩家体验,建议在按钮的点击回调中使用。 调起复访提示回调,true表示成功,false表示失败 游戏内录屏模块 是否显示视频分享Toast UI提示,默认显示 开始录屏 录屏错误 错误码 错误消息 录屏完成 实际视频路径 视频分享成功 视频分享失败 错误消息 视频分享取消 是否显示视频分享Loading界面 时间片段(用于视频裁剪) 开始时间,单位ms 结束时间,单位ms 录屏状态枚举 录制开始中 录制已开始 录制暂停中 录制已暂停 录制停止中 录制已停止 录制结束 录制错误 录制的视频时长太短 视频分享状态枚举 未进行视频分享 视频分享中 等待分享器回调 视频分享成功 视频分享失败 视频分享取消 设置录屏是否开启 开启设置为true,禁止设置为false 获取录屏开启状态 返回true则表示录屏开启,返回false为录屏关闭 设置录屏关键帧插帧间隔 内部默认关键帧间隔1s,若需要更小的关键帧间隔精度,可通过该接口设置关键帧间隔 插帧思路按照帧间隔在超过下述设置阈值后,将自动将对应到来的帧插成关键帧 在录制前设置,在下次录制时候即生效 视频关键帧插帧间隔 单位ms,默认值-1,为不插帧 是否设置成功回调, true 成功 false 失败 开始录屏 是否录制声音,默认为录制声音 最大录制时长,单位 s。小于等于 0 则无限制。默认为10分钟 视频录制开始回调 视频录制失败回调 函数调用状态,调用成功返回true,否则返回false 停止录屏 视频录制完成回调 视频录制失败回调 停止后需要对视频进行裁剪的时间片段,如果为null或空列表,则不对视频进行裁剪 是否对视频裁剪片段进行自动合并。 合并规则: 如果有两段重叠的时间片段,并且重叠部分小于等于1秒,则对这两段进行合并为一段 若autoMerge为true,比如时间片段为{[1000, 5000], [4000, 7000]},会被合并为{[1000, 7000]}。 若autoMerge为false,将按原始传入的时间片段进行裁剪,是否有重叠,由调用方保证。主要用于自定义裁剪。 函数调用状态,调用成功返回true,否则返回false 获取录屏时长 返回录屏时长,单位 ms 获取视频录制状态 VideoRecordState 给录屏分享设置默认的配乐,若链接不符合要求则不生效,参考文档:https://bytedance.feishu.cn/docs/doccnlj9zMlqSbD0S0FEMonoJZd 抖音PGC音乐的短链。形如 "https://v.douyin.com/JmcxWo8/", null 或者 “”表示取消默认配乐 获取视频分享状态 VideoClipState 分享视频。分享的视频文件是调用StopVideo后生成的文件。 注意:视频分享需要录制至少3s的视频,低于3s的视频将会分享失败。 分享成功回调 分享失败回调 分享取消回调 函数调用状态,调用成功返回true,否则返回false 带标题和话题的分享视频。分享的视频文件是调用StopVideo后生成的文件。 注意:视频分享需要录制至少3s的视频,低于3s的视频将会分享失败。 分享成功回调 分享失败回调 分享取消回调 分享视频的标题,如不需要设置标题,可以传null或空字符串 分享视频的话题,如不需要设置话题,可以传null或空列表 函数调用状态,调用成功返回true,否则返回false 带Json数据格式的分享视频。分享的视频文件是调用StopVideo后生成的文件。 注意:视频分享需要录制至少3s的视频,低于3s的视频将会分享失败。 分享成功回调 分享失败回调 分享取消回调 视频分享的其它一些字段信息 (除videoPath、channel字段的其它字段信息,如分享话题、标题、描述等)。 参考:https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/retweet/tt-share-app-message/ 函数调用状态,调用成功返回true,否则返回false 金币发放or扣除 订单类型,1-发放金币,2-消耗金币, int 点位ID,在开发者后台中金币配置中获取, string 金币数量, int 开发者自定义的订单号, string 以上参数使用json的形式传入,例如:{"type":1,"bizId":"xxxxx","goldNum":1,"customId":"xxxx"} 执行成功的回调函数,会返回平台订单号,例如:{"orderId":"xxxxx"} 接口调用成功的回调函数 接口调用失败的回调函数 互推格子模块 游戏互推组件能力 GridGamePanelCount,表示游戏推荐组件的格子数量 从组件内打开游戏时附带的query信息 GridGamePanelSize,表示组件大小,large:100%,medium:90%,small:80%。仅 gridCount = one | four 时有效。 控制游戏推荐组件的展示位置,不传入时默认展示在屏幕右下角。仅 gridCount = one 时有效。 显示 隐藏 销毁 https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/open-capacity/im-group/groupchatintroduce 查询用户通过小游戏平台创建的群的信息 如游戏开发者在平台创建了群聊 ABC,那么游戏侧可以基于游戏开发者在这个游戏中的 openid,查询其在小游戏平台创建了哪些群,群的状态如何,做游戏内的加群逻辑优化 建群用户的 openid 必填 接口调用成功的回调函数 必填 接口调用失败的回调函数 必填 会话来源 可空 附加信息 可空 在平台创建群聊,获得 groupid 后,游戏内通过这个方法引导用户加入抖音群 群 ID 必填 接口调用成功/失败的回调函数 必填 会话来源 可空 附加信息 可空 开始监听陀螺仪 获取陀螺仪数据的间隔时间,单位为毫秒(ms),默认大小为 50 接口调用状态回调,(bool success, string errMsg) => {} 停止监听陀螺仪 接口调用状态回调,(bool success, string errMsg) => {} 陀螺仪回调 x 轴的角速度。 y 轴的角速度。 z 轴的角速度。 从设备启动到现在经过的时间戳,单位是 ms。 姿态角值,围绕 Z 轴旋转,也叫翻滚角。 姿态角值,围绕 X 轴旋转,也叫做俯仰角。 姿态角值,围绕 Y 轴旋转,也叫偏航角。 宿主事件监听 添加宿主事件监听 事件名 回调函数,(result) => {},宿主事件触发后自动调用 移除宿主事件监听 事件名 Touch 对象表示在触控设备上的触摸点。通常是指手指或者触控笔在触屏设备或者触摸板上的操作。 Touch 对象的唯一标识符,只读属性。一次触摸动作(指手指的触摸)在平面上移动的整个过程中, 该标识符不变。 可以根据它来判断跟踪的是否是同一次触摸过程。 触点相对于屏幕左边沿的 X 坐标。 触点相对于屏幕上边沿的 Y 坐标。 触摸事件 当前所有触摸点的列表 触发此次事件的触摸点列表 事件触发时的时间戳 触控事件回调 监听开始触摸事件 监听触点移动事件 监听触摸结束事件 监听触点失效事件 取消监听开始触摸事件 取消监听触点移动事件 取消监听触摸结束事件 取消监听触点失效事件 抖音好友邀请状态变化 状态值, 参考@InviteState 状态对应的信息 监听邀请状态变化事件 抖音好友邀请 房间id 用于放在schema 里面的信息,Key-Value形式。 额外扩展信息, Key-Value形式。 调用结果回调: (isSuccess, errMsg) => {} Example TTSDKInner.API.GetTTInvite().onInviteStateChanged = (state, msg) => { Debug.Log($"onInviteStateChanged - state: {state}, msg: {msg}"); }; var roomId = "12345"; var query = new JsonData {["test"] = "query"}; JsonData extra = null; TTSDKInner.API.GetTTInvite().CreateInvitePanel(roomId, query, extra, (isSuccess, errorMsg) => { if (isSuccess) { Debug.Log("CreateInvitePanel success"); } else { Debug.Log($"CreateInvitePanel failed, {errorMsg}"); } }); 键盘输入事件 键盘输入的当前值 用户点击键盘确定按钮时的事件 键盘输入的当前值 键盘收起事件 键盘输入的当前值 监听键盘输入事件 监听用户点击键盘确定按钮时的事件 监听键盘收起事件 显示软键盘(仅WebGL平台下支持) 参考: https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/interface/keyboard/tt-show-keyboard/ 键盘输入监听请设置 onKeyboardInputEvent 和 onKeyboardConfirmEvent 显示键盘的参数 显示软键盘成功回调: () => {} 显示软键盘失败回调,(errMsg) => {} Example: using TTSDK; using UnityEngine; using UnityEngine.UI; public class KeyboardTest : MonoBehaviour { public InputField input; private void Start() { SetInputTexts(); RegisterKeyboardEvents(); } private void SetInputTexts() { input.text = "done"; var comp = input.GetComponent<ClickableInputField>(); if (comp == null) { comp = input.gameObject.AddComponent<ClickableInputField>(); } comp.multiple = false; comp.confirmType = input.text; } private void OnDestroy() { UnregisterKeyboardEvents(); } private void RegisterKeyboardEvents() { TTSDKInner.API.GetTTKeyboard().onKeyboardInputEvent += OnKeyboardInput; TTSDKInner.API.GetTTKeyboard().onKeyboardConfirmEvent += OnKeyboardConfirm; TTSDKInner.API.GetTTKeyboard().onKeyboardCompleteEvent += OnKeyboardComplete; } private void UnregisterKeyboardEvents() { TTSDKInner.API.GetTTKeyboard().onKeyboardInputEvent -= OnKeyboardInput; TTSDKInner.API.GetTTKeyboard().onKeyboardConfirmEvent -= OnKeyboardConfirm; TTSDKInner.API.GetTTKeyboard().onKeyboardCompleteEvent -= OnKeyboardComplete; } private void OnKeyboardInput(string value) { Debug.Log($"OnKeyboardInput: {value}"); if (input.isFocused) { input.text = value; } } private void OnKeyboardConfirm(string value) { Debug.Log($"OnKeyboardConfirm: {value}"); } private void OnKeyboardComplete(string value) { Debug.Log($"OnKeyboardComplete: {value}"); } } public class ClickableInputField : EventTrigger { public string confirmType = "done"; // 可选值有: "done", "next", "search", "go", "send" public int maxInputLength = 100; // 最大输入长度 public bool multiple = false; // 是否多行输入 private InputField _inputField; private void Start() { _inputField = GetComponent<InputField>(); } public override void OnPointerClick(PointerEventData eventData) { if (_inputField != null) { if (_inputField.isFocused) { TTT.ShowKeyboard(new TTKeyboard.ShowKeyboardOptions() { maxLength = maxInputLength, multiple = multiple, defaultValue = _inputField.text, confirmType = confirmType }); } } } } 收起软键盘(仅WebGL平台下支持) 参考: https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/interface/keyboard/tt-hide-keyboard/ 隐藏软键盘成功回调: () => {} 隐藏软键盘失败回调,(errMsg) => {} 更新键盘,只有当键盘处于拉起状态时才会产生效果。 参考: https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/interface/keyboard/tt-show-keyboard/ 键盘输入监听请设置 onKeyboardInputEvent 和 onKeyboardConfirmEvent 键盘输入框的当前值 更新软键盘成功回调: () => {} 更新软键盘失败回调,(errMsg) => {} 检查直播间/小游戏挂载状态是否有效 入参,主要为直播间ID{"roomID":"xxxx"},如从直播间进入小游戏roomId来源于启动参数中 成功回调 失败回调 完成回调 跳转至直播间 入参,主要为直播间ID{"roomID":"xxxx"} 成功回调 失败回调 完成回调 游戏跳转返回的跳转信息 用处: 1.A->B A游戏跳转到B游戏,再从B游戏返回到A时,若A游戏没有被杀死则实时收到该信息 2.A->B A游戏跳转到B游戏,再从B游戏返回到A时,若A游戏被杀死则下次A启动时再获取该信息 提供游戏互跳功能的模块 本地配置互跳信息的方法: 在Resources文件加下添加game.json 内容如下: [{ "navigate_app_id": "互跳游戏1的appid", }, { "navigate_app_id": "互跳游戏2的appid", }] 当从跳转的目标游戏返回时且自身进程存在没有被玩家杀死则自动调用该方法 A跳转B,B玩完返回A时,若A依旧存活则会自动调用该方法 若A被用户杀死则下一次启动A时可以通过方法获取上次的拉起信息 两种情况互斥,A依旧存活时,下次启动A就会获取不到信息;A被杀死,一定获取不到该回调,下次启动时会获取到拉起信息 跳转的目标appid 游玩时间 跳转游戏时失败时调用这个回调 当播放的视频被关闭时调用改接口 直接跳转至目标索引号所代表的游戏 互跳的条目信息可有两个来源,网络动态拉取找对应QA同学配置,本地配置方法见类 TTNavigateGame的注释。 在服务器配置的游戏索引号,从0开始 跳转返回时调用该方法 跳转失败时调用该方法,如没有获取到跳转信息 跳转到对应游戏时传递的自定义参数 拉起方读取被拉起方传递的信息,只有A拉起B后,A被杀死无法从B获取通知时该接口才会有数据 该接口涉及到读文件、Native方法调用,比较耗时,不可频繁调用! 是否查找到跳转信息 判断当前游戏是否被另一个游戏拉起 该游戏被该appid对应的游戏拉起,若不是被拉起的appid为"" 获取从拉起方传递来的自定义数据,若不是被拉起的navigateExtraParam为"" true:当前游戏是被其他游戏拉起的,false:当前游戏不是由其他游戏拉起的 初始化,从服务器获取导航信息 跳转到特定的游戏 是否跳转成功 不开放给用户 TTSDK 实现的调用 Plugin 的存储文件的方法 当该游戏由其他游戏拉起时,设置的回调 被哪个游戏拉起 被拉起游戏设置的额外信息 CP自己设置的在本游戏中推荐的游戏 目标appid 设置的query值 自定义的额外信息 视频的url链接 被拉起方的游戏设置传递给拉起方的信息,拉起方可以读取设置的该信息 游戏A拉起了游戏B: A若拉起B后在后台被杀死则通过接口可以获取到设置的信息 A若拉起B后依旧在后台则通过设置的接口通知设置的信息 该接口涉及到写文件、Native方法调用,比较耗时,不可频繁调用! 设置从其他游戏拉起的事件监听,从其他游戏拉起时会调用该回调 一定要早于 TTSDK 的初始化 特定游戏的id 供Java侧调用,获取保存到Unity本地的互跳信息 错误信息 错误信息 支付时间 礼包详情(若为礼包购买) 必填 支付的类型, 目前仅为"game" 必填 环境配置,目前合法值仅为"0" 必填 币种, 目前仅为"CNY" 必填 申请接入时的平台,目前仅为"android" 必填(道具直购场景除外)金币购买数量 非必填 游戏服务区 id, 必填 游戏开发者自定义的唯一订单号,订单支付成功后通过服务端支付结果回调回传 非必填 游戏开发者自定义的其他信息,订单支付成功后通过服务端支付结果回调回传。字符串长度最大不能超过 256 非必填(道具直购场景必填)默认游戏币。goodType 与 buyQuantity 任一传递即,可游戏币:0 或 1,道具直购:2 非必填(道具直购场景必填)道具价格,人民币,单位分 非必填(道具直购场景必填)道具名称 非必填 (礼包场景必填)礼包Id 支付成功回调 支付失败回调 接口调用完成回调 礼包 id 礼包名称 礼包价格,单位是分 非uc环境下运行 当前uc环境不支持支付功能 前一个支付未完成 orderInfo参数无效 支付失败 拉起微信支付失败 微信未安装 查询订单状态处理函数 订单号(从orderInfo中读取的order_info值) 交易时间(从orderInfo中读取的trade_time值) PayStatus 订单支付状态 支付状态 支付成功 支付超时 支付失败 支付关闭 支付取消 订单状态未知/未支付 拉起支付服务类型 小程序收银台,从收银台选择支付渠道 调用微信 API 支付,不拉起小程序收银台 调用支付宝 API 支付,不拉起小程序收银台 支付渠道 使用微信支付 使用支付宝支付 初始化支付接口,减少支付时卡顿时间 小游戏平台的支付接口 接口文档 https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/payment/tt-request-game-payment mode string 必填 支付的类型, 目前仅为"game" env int 必填 环境配置,目前合法值仅为"0" currencyType string 必填 币种, 目前仅为"CNY" platform string 必填 申请接入时的平台,目前仅为"android" buyQuantity int 必填(道具直购场景除外)金币购买数量 zoneId string 非必填 游戏服务区 id, customId string 必填 游戏开发者自定义的唯一订单号,订单支付成功后通过服务端支付结果回调回传 extraInfo string 非必填 游戏开发者自定义的其他信息,订单支付成功后通过服务端支付结果回调回传。字符串长度最大不能超过 256 goodType int 非必填(道具直购场景必填)默认游戏币。goodType 与 buyQuantity 任一传递即,可游戏币:0 或 1,道具直购:2 orderAmount int 非必填(道具直购场景必填)道具价格,人民币,单位分 goodName string 非必填(道具直购场景必填)道具名称 `TTPlayerPrefs` is a class that stores Player preferences between game sessions. It can store string, float and integer values into the user’s platform registry. Sets a single integer value for the preference identified by the given key. You can use TTPlayerPrefs.GetInt to retrieve this value. Returns the value corresponding to key in the preference file if it exists. Sets the float value of the preference identified by the given key. You can use TTPlayerPrefs.GetFloat to retrieve this value. Returns the value corresponding to key in the preference file if it exists. Sets a single string value for the preference identified by the given key. You can use TTPlayerPrefs.GetString to retrieve this value. Returns the value corresponding to key in the preference file if it exists. Returns true if the given key exists in TTPlayerPrefs, otherwise returns false. Removes the given key from the TTPlayerPrefs. If the key does not exist, DeleteKey has no impact. Removes all keys and values from the preferences. Use with caution. Writes all modified preferences to disk. https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/open-capacity/game-rank/setImRankData 在关键的游戏场景,设置写入用户的排行榜数据(游戏成绩信息),该数据会上传到服务端 0:数字类型、1:枚举类型;数字类型(0)往往适用于游戏的通关分数(103分、105分),枚举类型(1)适用于段位信息(青铜、白银);--(Require) 展示出来的数值,dataType == 0 时只能传正数的字符串,否则会报错。value为具体的值,若dataType为0,请传入数字(eg:103、105);若dataType为1,则传入字符串(eg:青铜、白银)--(Require) dataType 为 1 时,需要传入这个值判断权重,dataType 为 0 时,不填即可--(Require) 预留字段--(Nullable) 排行榜分区标识--(Nullable) 以上参数使用json格式传入,例如"{"dataType":0,"value":"100","priority":0,"zoneId":"default"}" 回调函数 获取排行榜列表,调用 API 后, 根据参数自动绘制游戏好友排行榜 代表数据排序周期,day为当日写入的数据做排序;week为自然周,month为自然月,all为半年--(Require) 由于数字类型的数据与枚举类型的数据无法同时排序,因此需要选择排序哪些类型的数据--(Require) 选择榜单展示范围。default: 好友及总榜都展示,all:仅总榜单--(Nullable) 数据后缀,最后展示样式为 value + suffix,若suffix传“分”,则展示 103分、104分--(Nullable) 排行榜标题的文案--(Nullable) 排行榜分区标识--(Nullable) 以上参数使用json格式传入,例如"{"rankType":"week","dataType":0,"relationType":"all","suffix":"分","rankTitle":"","zoneId":"default"}" 回调函数 获取排序好的「好友/总榜」数据源,开发者基于数据源自行渲染返回的数据 day、week、month、all--(Require) 0:数字类型 、 1:枚举类型--(Require) friend:当前登录用户的好友的游戏数据排行,default:全部写入数据的排行 ,all: 总榜--(Require) 页码,从1开始--(Require) 每页长度,大于 0 小于 40--(Require) 排行榜分区标识--(Nullable) 以上参数使用Json格式传入, 获取成功回调 获取失败回调 游戏内网络请求模块 请求相关设置 网络请求方法,支持 GET/POST/OPTIONS/PUT/HEAD/DELETE 请求的参数 请求header 期望返回的数据类型 期望响应的数据类型,支持 text 或 arraybuffer 请求响应 请求响应 发起一个网络请求。网络相关的 API 在使用前需要配置域名白名单。 请参考 https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/guide/basic-ability/network/ 请求地址 相关设置 请求'成功'的回调 请求失败的回调 (内部方法)发起一个网络请求。网络相关的 API 在使用前需要配置域名白名单。 请参考 https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/guide/basic-ability/network/ 请求地址 相关设置 请求'成功'的回调 请求失败的回调 (内部方法)发起一个网络请求。网络相关的 API 在使用前需要配置域名白名单。 请参考 https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/guide/basic-ability/network/ 请求地址 相关设置 请求'成功'的回调 请求失败的回调 设置是否保持屏幕常亮状态 是否保持屏幕常亮 接口调用成功的回调函数 接口调用失败的回调函数 获取屏幕亮度。 接口调用成功的回调函数,屏幕亮度值,范围 0 ~ 1。0 最暗,1 最亮。 接口调用失败的回调函数 设置屏幕亮度。 屏幕亮度值,范围 0 ~ 1。(0 最暗,1 最亮) 接口调用成功的回调函数 接口调用失败的回调函数 分享模块 分享成功 分享失败 错误消息 分享取消 通用分享 分享成功回调 分享失败回调 分享取消回调 可填的字段信息参考:https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/retweet/tt-share-app-message/ 监听用户点击右上角菜单中的“转发”,"拍抖音"按钮时触发的事件 https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/retweet/tt-on-share-app-message 需要返回一个ShareParam 对象,用于分享 https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/retweet/share-param callback 接收一个 object 类型的参数,属性为:string: channel 取消监听用户点击右上角菜单的“转发”按钮时触发的事件。 https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/retweet/tt-off-share-app-message 通用分享 可填的字段信息参考:https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/api/retweet/tt-share-message-to-friend/ openId string 是 发送对象的 openId templateId string 是 分享素材模板 id,指定通过平台审核的 templateId 来选择分享内容,需在平台设置且通过审核 query string 否 查询字符串,必须是 key1=val1&key2=val2 的格式。从这条转发消息进入后,可通过 tt.getLaunchOptionsSync 或 tt.onShow 获取启动参数中的 query用来实现信息透传 分享成功回调 分享失败回调 分享取消回调 ShowShareMenu 接口调用成功回调 ShowShareMenu 接口调用失败回调 ShowShareMenu 接口调用结束回调(调用成功、失败都会执行) 设置小游戏转发按钮为显示状态。 转发按钮位于小游戏页面右上角的“更多”中。 详细信息:https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/api/retweet/tt-show-share-menu 接口调用成功的回调函数 接口调用失败的回调函数 接口调用结束的回调函数 HideShareMenu 接口调用成功回调 HideShareMenu 接口调用失败回调 HideShareMenu 接口调用结束回调(调用成功、失败都会执行) 设置小游戏转发按钮为隐藏状态。 转发按钮位于小游戏页面右上角的“更多”中。 详细信息:https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/api/retweet/tt-hide-share-menu 接口调用成功的回调函数 接口调用失败的回调函数 接口调用结束的回调函数 确认当前宿主版本是否支持跳转某个小游戏入口场景。 需要确认的入口场景(目前仅支持的入参为'sidebar') 接口调用成功的回调函数, bool为true说明支持,false表示不支持 接口调用结束的回调函数(调用成功、失败都会执行) 接口调用失败的回调函数 调用该API可以跳转到某个小游戏入口场景。 需要确认的入口场景(目前仅支持的入参为'sidebar') 接口调用成功的回调函数, bool为true说明支持,false表示不支持 接口调用结束的回调函数(调用成功、失败都会执行) 接口调用失败的回调函数 调用该API可以跳转到某个小游戏入口场景。支持福利信息透传 参数例子{"scene":"sidebar","activityId":"7368350593716338729"} 接口调用成功的回调函数, bool为true说明支持,false表示不支持 接口调用结束的回调函数(调用成功、失败都会执行) 接口调用失败的回调函数 注册用户参与复访营销活动。当前只支持侧边栏复访活动 指定用户参与的营销活动id,通过OpenAPI申请得到。未填写时,会由平台选择可用活动,可选,例如{"activityId":"111111"} 接口调用成功的回调函数, 接口调用结束的回调函数(调用成功、失败都会执行) 接口调用失败的回调函数 领取营销活动中完成任务后的奖励。当前只支持侧边栏复访活动 用户参与的营销活动id,通过OpenAPI申请得到。未填写时,会由平台选择可发放的奖励,可选,例如{"activityId":"7368350593716338729"} 接口调用成功的回调函数, 接口调用结束的回调函数(调用成功、失败都会执行) 接口调用失败的回调函数 获取绑定群信息成功结果 目前公会的绑定状态,true 公会已绑定,false 公会未绑定 解除绑定成功结果 添加公会群成功结果 获取绑定群信息成功回调 公会群通用参数 查询绑定群信息的公会 ID,格式限制为,长度不超过 30 接口调用失败的回调函数 接口调用结束的回调函数(调用成功、失败都会执行) 获取绑定群信息参数 接口调用成功的回调函数 绑定公开群成功结果 是否完成绑定公开群,true 完成绑定,false 未绑定 绑定公开群成功回调 绑定公开群成功参数 接口调用成功的回调函数 解除绑定成功回调 接口调用成功的回调函数 添加工会群成功回调 添加工会群参数 接口调用成功的回调函数 当向字节小程序后台请求完新版本信息,会进行回调。 当新版本下载完成,会进行回调。 当新版本下载完成后进行回调的函数 当新版本下载失败,会进行回调。 当新版本下载失败时回调的函数 当新版本下载完成,调用该方法会强制当前小游戏应用上新版本并重启。 广告模块的mock层 登录的mock方法 检查session是否有效的mock方法 获取用户信息的mock方法 获取用户授权状态 主动打开授权界面,然后获取最新的授权状态 获取用户已经授权过的配置。 结果中只会包含向用户请求过的权限。 与 OpenSetting 的区别是 GetSetting 只会获取配置,而不会打开配置页面。 接口调用成功的回调函数 接口调用失败的回调函数 打开设置页面,返回用户设置过的授权结果。 结果中只会包含用户请求过的权限。 与 GetSetting 的区别是,OpenSetting 会打开设置页面,而 GetSetting 只会返回用户授权的设置信息。 接口调用成功的回调函数 接口调用失败的回调函数 用户在实名认证弹窗完成实名认证后回调 必须在游戏初始化阶段就调用 Banner广告的Mock模块 插屏广告的Mock模块 广告模块的mock层 收藏模块的Mock层 录屏模块的mock层 Banner广告的Mock模块 分享模块的mock层 分享模块的mock层 分享模块的mock层 为 TTInputMock 获取 Unity Input 输入 触摸事件回调 获取已存在触点 移除触点 分发 Touch 事件 下一帧开始时分发 触控事件 API Mock 通过 Input 获取 Touch 或 Mouse 覆盖到 TT 事件,仅用于调试。 Android Native 切换调用链路 Flag,开关打开走 JS 基础库 以下 API 例外,当开关 Flag 为 true,但以下 API 依然走老的链路到 Android 端上 初始化 Unity native 小游戏调用链路的设置 走 Js 基础库开关 判断是否走 Js 基础库调用,仅当 nativeCallJsFlag 开关打开且不在例外的 exceptApiList 中时走 Js 基础库 开关细化到某一 methodName 初始化 Unity native 小游戏调用链路的设置 上报 native JS 新链路的调用情况 加载端上写入的 native_settings 配置 https://cloud.bytedance.net/appSettings-v2/detail/config/193882/detail/status?x-resource-account=public 初始化 Unity native 小游戏调用链路的设置 调用设置 登录成功回调 是否是断线重连,true表示断线重连,false表示正常登录 登录失败回调 客户端错误码 客户端错误消息 连接断开回调 排队队列更新回调 排队当前位置 排队需要等待的时间,单位 s 业务消息事件回调 服务器端返回的数据 登录事件回调 是否是断线重连,1表示是断线重连,0表示是正常登录 登录结果,0表示登录成功,失败则为客户端错误码 服务器端结果,0表示成功,失败则为服务器返回的错误码 注意:serverResult不为0,则loginResult一定不为0;loginResult为0,serverResult一定为0;loginResult不为0,serverResult可能为0 登录成功回调 登录失败回调 断开连接回调 排队队列更新回调 业务消息事件回调 设置登录回调 登录成功回调 登录失败回调 创建一个上下文环境,用于初始化相关信息 Code ID Code ID 服务器主机地址 服务器端口号 与服务器连接超时时间 返回错误码状态,0表示成功,非0表示失败。可以通过调用 GetErrorString 函数获取错误信息。或者直接调用 GetLastErrorString 获取错误信息。 销毁上下文环境,清理数据 开始与服务器端建立连接(包括登录流程) 需要调用SetOnLoginEventCallback,监听登录状态 返回错误码状态,0表示成功,非0表示失败。可以通过调用 GetErrorString 函数获取错误信息。或者直接调用 GetLastErrorString 获取错误信息。 停止与服务器端的连接 与服务器端连接是否已停止 更新内部逻辑状态 !!!Note: 需要定期不断调用该函数(比如每隔100ms调用一次) 向服务器端发送业务消息 通过调用 SetOnMessageEventCallback 函数监听服务器端的业务消息回调 返回错误码状态,0表示成功,非0表示失败。可以通过调用 GetErrorString 函数获取错误信息。或者直接调用 GetLastErrorString 获取错误信息。 根据错误码获取错误信息 返回错误信息文本 获取最后一次错误的信息 返回错误信息文本 业务消息事件回调 底层C接口的数据指针 数据长度 网络调用的封装 RPC调用成功时的回调,返回结果 返回的结果 RPC调用失败时的回调,返回错误码 错误码 非鉴权的Post方法进行一次RPC 域名 服务 数据 成功回调 失败回调 通用结果消息 错误信息 TTUDPSocket.Connect 参数 要发送消息的地址 要发送消息的端口号 TTUDPSocket.Send 参数 要发送消息的地址 要发送消息的端口号 要发送的数据 发送数据的长度,仅当 message 为 ArrayBuffer 类型时有效 合法值:自然数,传入0的时候,会设为 message.byteLength 发送数据的偏移量,仅当 message 为 ArrayBuffer 类型时有效 合法值:自然数,大于等于 message.byteLength 时会设为0 向指定地址发消息时,是否要开启广播 本地信息 远端信息 TTUDPSocket 消息结果 本地信息 远端信息 消息内容 适配层 TTUDPSocketBind 参数 bind指定的端口号,合法值:[0, 65535] 传入0或者不传,则绑定一个系统随机分配的可用端口 适配层 TTUDPSocketSend 参数 UDPSocket 实例 绑定一个系统随机分配的可用端口,或绑定一个指定的端口号。bind 成功会触发 onListening 监听。 bind指定的端口号,合法值:[0, 65535]。传入0或者不传,则绑定一个系统随机分配的可用端口。 绑定成功的端口号 关闭 UDP Socket 实例。 在关闭之后,将无法再调用 Bind、Connect、Bind 等方法。 预先连接到指定的 IP 和端口。 监听收到消息的事件 事件监听函数 回调中是否带有本地和远端地址信息 移除收到消息事件的事件监听函数 事件监听函数 监听关闭的事件 事件监听函数 移除关闭事件的事件监听函数 事件监听函数 监听错误的事件 事件监听函数 移除错误事件的事件监听函数 事件监听函数 监听开始监听数据包的事件 事件监听函数 移除开始监听数据包事件的事件监听函数 事件监听函数 向指定 IP 和端口发送消息。 支持发送 string 或 byte[] 二进制数据。 发送消息的参数 是否在 TT Container 真机环境下 TT Unity SDK初始化函数 初始化完成的回调 error code : 0 , 无错误 1, TT unity sdk 版本不支持 2,unity engine 版本不被支持 TTSDK 对外发布版本号 游戏版本号,通过该接口替换Application.version获得正确的版本号信息 游戏发布版本号,发布版本时发布工具中指定的版本号 获取端上容器 container sdk 版本号 like "1.0.0" 获取小程序启动时的参数,里面的参数可能为空,使用时需判空; 可以在 TTSDKInner.init()之后调用,确保得到非空值 是否显示调试Toast提示。当调用 TTSDK 相关接口后,获得函数执行状态(主要是失败状态)的反馈。 设置为true则在调用 TTSDK 相关接口后,会自动弹出Toast提示。默认不显示。【建议只在调试状态下开启】 接入sdk的debugpanel面板,注册一些debug命令的回调函数 打开客服聊天页 打开客服聊天页回调,参数为是否成功,true表示成功,false表示失败 是平台提供的小游戏客服能力 type:(1 :小 6 客服 2 : 抖音IM 客服(仅支持抖音))sessionFrom:(保留字段,暂时可以不填),例如{"type":1,"sessionFrom":"xxx"} 打开客服页面成功或者失败回调 通过客服页面发起支付 接口说明:https://bytedance.feishu.cn/docx/doxcnUkE86LjFTFdTJREIEGT9bb JsonData内容如下 buyQuantity int 必填 金币购买数量,金币数量必须满足:金币数量*金币单价 = 限定价格等级(详见下方 buyQuantity 限制说明。开发者可以在字节小游戏平台的“支付”tab 设置游戏币单价) customId string 必填 游戏开发者自定义的唯一订单号,订单支付成功后通过服务端支付结果回调回传 currencyType string 非必填 币种, 目前仅为"CNY" zoneId string 非必填 游戏服务区 id,默认值为1,开发者自定义。游戏不分大区则默认填写"1"。如果应用支持多角色,则角色 ID 接在分区 ID 后,用"_"连接 extraInfo string 非必填 游戏开发者自定义的其他信息,订单支付成功后通过服务端支付结果回调回传。字符串长度最大不能超过 256。(强烈建议传入) goodType int 非必填(道具直购场景必填) 默认游戏币。 游戏币:0 | 1,道具直购:2。若goodType为道具直购场景,不可传buyQuantity orderAmount int 非必填(道具直购场景必填) 道具价格,人民币,单位分 goodName string 非必填 道具名称 goodsId string 非必填 (礼包场景必填)礼包Id 打开客服页成功 打开客服聊天页回调,参数为是否成功,true表示成功,false表示失败 获取系统信息。类似小程序开发平台 tt.getSystemInfoSync 接口返回值。 https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/device/system-information/tt-get-system-info-sync/ SystemInfo 当前系统相关信息 自定义分析数据上报接口,调用后,会将数据上报到小程序开发者平台,开发者可以在小程序开发者平台中查看上报数据。使用前,需要在小程序管理后台事件中新建事件,配置好事件名与字段。 可参考文档 https://microapp.bytedance.com/docs/zh-CN/mini-app/data/advanced-analysis/events 事件名 上报的数据,默认为null key : 配置中的字段名. value(number|string|boolean) : 上报的数据 创建Banner广告,返回 BannerAd 实例。支持多实例,可以在一个页面下展示多个。也可以分页面展示 竖屏情况下,Banner广告接受的宽度范围是 0.8*屏幕宽度,1.0*屏幕宽度。 横屏情况下,Banner广告接受的最小宽度是 128,最大宽度是 208。 开发者可以在这之间自由指定广告宽度。广告组件会自动等比例缩放素材。 创建Banner示例后,要主动调用show来进行展示 错误码由sdk传出,原因参考 https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/api/ads/tt-create-banner-ad banner广告位的adid 样式:"style":{"top":0, "left":0, "width":320}} width 在竖屏下会被限制在 [0.8*ScreenWidth,1.0*ScreenWidth],横屏下会被限制在[128, 208] 广告自动刷新的间隔时间,单位为秒,参数值必须大于等于 30(该参数不传入时 Banner 广告不会自动刷新). 广告错误回调,参数表明错误码和错误描述. 广告加载回调. 广告样式改变回调,第一个参数是width.第二个参数是height. 广告关闭回调,仅在WebGL有效 创建并播放插屏广告,在广告模块启动15s内不允许展示插屏广告,在任何地方调用API.GetTTAdManager,就会启动广告模块 两个插屏广告展示间隔不能少于30s 插屏广告支持多实例。简单回调设置,插屏广告完成和错误的回调函数 插屏广告实例只支持展示一次,出现加载错误,或 展示成功,点击关闭按钮或视频广告外的其他地方,广告实例都会自动销毁。下一次需再次创建。 提供接口可以手动销毁 错误码由sdk传出,原因参考 https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/api/ads/tt-create-interstitial-ad 插屏广告位的adid 广告视频错误回调,参数含义 errCode, errMsg 表明错误码和错误描述. 广告视频关闭回调. 广告加载回调. 创建激励视频广告,在广告未加载时会发起异步请求,弱网情况下会进行重试。失败会调用errCallback 激励视频广告只支持一个实例,申请多个激励视频广告位是无效的 简单回调设置,激励视频完成和错误的回调函数 错误码由sdk传出,原因参考 https://bytedance.feishu.cn/docs/doccn1lAbZzMOqI5ueq1gCyPdcg# https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/open-capacity/ads/ads-error-code-description/ https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/ads/tt-create-interstitial-ad 1004 可能是由于广告请求被限制了次数,需要跟广告投放沟通 如果需要更详细的回调信息,可使用 SetVideoAdCallBack 广告aid. 视频广告关闭回调,参数含义 IsComplete,表明广告是否播放完成. 视频广告错误回调,参数含义 errCode, errMsg 表明错误码和错误描述. /// 再得添加 https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/open-capacity/ads/rewardagainintroduce 是否开启再得广告模式(只支持安卓系统的抖音和抖音极速版) 再得广告的奖励文案,玩家每看完一个广告都会展示,如【再看1个获得xx】xx就multitonRewardMsg中的文案,按顺序依次展示,单个文案最大长度为 7,multiton为true时必填 额外观看广告的次数,合法的数据范围为1-4,multiton为true时必填 是否开启进度提醒,开启时广告文案为【再看N个获得xx】,关闭时为【 再看1个获得xx】。N表示玩家当前还需额外观看广告的次数。 创建激励视频广告 注意:此方法已经废弃,请使用无 videoAdLoadCallback 参数版本的 CreateRewardedVideoAd 方法 展示激励视频广告,for 内部使用 设置激励视频广告的回调。获取完整的回调信息,一般处理都可以通过ShowVideoAdWithId完成,需要时使用 激励视频广告的回调. 登录-获取临时登录凭证 强制登录默认为true,即若当前未登录宿主,则会调起宿主的登录窗口, 如果用户点击取消则会调用 fail 如果当前登录宿主,则直接返回success,获取到 code 和 anonymousCode 若强制登录为false,当前登录了宿主则会返回success,可以获取到获取到 code 和 anonymousCode 当前未登录宿主,则只有 anonymousCode code 可以换取 openid, openid 是用户的唯一标识 anonymousCode 可以换取 anonymous_openid, 同一台手机 anonymous_openid 是相同的 未登录时, 是否强制调起登录框 登录成功的回调 登陆失败的回调 检查用户当前的 session 状态是否有效 只有成功调用 login 才会生成 session,checkSession 才会进入 success 回调,当用户退出登录会清除 session session_key 会随着login接口的调用被刷新。可以通过checkSession方法验证当前 session 是否有效,从而避免频繁登录。 目前实际测试若使用匿名登录(forceLogin = false),则checkSession会一直返回 fail 只有登录了宿主(forceLogin = true),checkSession才会返回success,下次不用login checkSession也可以返回true 验证有效的回调 验证无效或者验证失败的回调 获取已登录用户的基本信息或特殊信息 若匿名登录后 userinfo里面字段全部为默认值 登录了宿主后可以获取账号数据,下次不用login GetUserInfo也可以返回正确数据 获取用户信息成功的回调 获取用户信息失败的回调 判断用户是否已经授权给当前游戏读取个人信息 该API会调用宿主的代码,如果调用宿主代码成功则会调用onGetUserInfoAuth,并返回是否已经授权 如果调用宿主代码失败则会调用onGetUserInfoAuthFail 调用宿主代码成功,并返回是否已经授权读取用户信息 调用宿主代码时发生错误 主动打开获取用户信息的授权界面,在Setting界面关闭后返回最新的授权状态,该方法没有超时时间 该API会调用宿主的代码,如果调用宿主代码成功则会调用onGetUserInfoAuth,并返回最新的授权状态 如果调用宿主代码失败则会调用onGetUserInfoAuthFail 获取用户已经授权过的配置。 结果中只会包含向用户请求过的权限。 与 OpenSetting 的区别是 GetSetting 只会获取配置,而不会打开配置页面。 接口调用成功的回调函数 接口调用失败的回调函数 打开设置页面,返回用户设置过的授权结果。 结果中只会包含用户请求过的权限。 与 GetSetting 的区别是,OpenSetting 会打开设置页面,而 GetSetting 只会返回用户授权的设置信息。 接口调用成功的回调函数 接口调用失败的回调函数 用户在实名认证弹窗完成实名认证后回调 需要在初始化时设置,回调时机为:游戏中弹出实名认证,用户完成了实名认证时触发 获取已登录用户的基本信息或特殊信息 若匿名登录后 userinfo里面字段全部为默认值 登录了宿主后可以获取账号数据,下次不用login GetUserInfo也可以返回正确数据 是否获取加密信息以及 CloudId 验证有效的回调 验证无效或者验证失败的回调 获取已登录用户的基本信息或特殊信息 若匿名登录后 userinfo里面字段全部为默认值 登录了宿主后可以获取账号数据,下次不用login GetUserInfo也可以返回正确数据 是否获取加密信息以及 CloudId 验证有效的回调 验证无效或者验证失败的回调 拉起实名认证窗口。 注意:调用该接口前请确保用户已登录。 实名认证窗口拉起成功回调 实名认证窗口拉起失败回调 提供小游戏获取抖音权限的能力,展示出抖音权限授权弹窗。 在使用在接口前,需要小游戏拥有者登录抖音开发平台申请开通小游戏需要的权限。 需要获取权限的信息,其中 key 值是申请权限的 scope,value 值必须是 0,1,2(此处申请的权限在抖音开放平台必须是已开通状态) 展示抖音权限授权弹窗成功回调 展示抖音权限授权弹窗失败回调 获取录屏相关接口 TTGameRecorder 需要白名单 获取 RtcEngine 实例(包含音视频应用程序调用的主要方法的接口类实例),应当只调用一次。第二次调用getRtcEngine 时,实际获取的还是上次那个 RTCEngineManager 发起一个网络请求。网络相关的 API 在使用前需要配置域名白名单。 请参考 https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/guide/basic-ability/network/ 请求地址 相关设置 请求'成功'的回调 请求失败的回调 通用分享 分享成功回调 分享失败回调 分享取消回调 可填的字段信息参考:https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/retweet/tt-share-app-message/ 监听用户点击右上角菜单中的“转发”,"拍抖音"按钮时触发的事件 https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/retweet/tt-on-share-app-message 需要返回一个ShareParam 对象,用于分享 https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/retweet/share-param callback 接收一个 object 类型的参数,属性为:string: channel 取消监听用户点击右上角菜单的“转发”按钮时触发的事件。 https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/retweet/tt-off-share-app-message 通用分享 可填的字段信息参考:https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/api/retweet/tt-share-message-to-friend/ openId string 是 发送对象的 openId templateId string 是 分享素材模板 id,指定通过平台审核的 templateId 来选择分享内容,需在平台设置且通过审核 query string 否 查询字符串,必须是 key1=val1&key2=val2 的格式。从这条转发消息进入后,可通过 tt.getLaunchOptionsSync 或 tt.onShow 获取启动参数中的 query用来实现信息透传 分享成功回调 分享失败回调 分享取消回调 设置小游戏转发按钮为显示状态。 转发按钮位于小游戏页面右上角的“更多”中。 详细信息:https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/api/retweet/tt-show-share-menu 接口调用成功的回调函数 接口调用失败的回调函数 接口调用结束的回调函数 设置小游戏转发按钮为隐藏状态。 转发按钮位于小游戏页面右上角的“更多”中。 详细信息:https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/api/retweet/tt-hide-share-menu 接口调用成功的回调函数 接口调用失败的回调函数 接口调用结束的回调函数 小游戏平台的支付接口 接口文档 https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/payment/tt-request-game-payment mode string 必填 支付的类型, 目前仅为"game" env int 必填 环境配置,目前合法值仅为"0" currencyType string 必填 币种, 目前仅为"CNY" platform string 必填 申请接入时的平台,目前仅为"android" buyQuantity number 必填(道具直购场景除外)金币购买数量 zoneId string 非必填 游戏服务区 id, customId string 必填 游戏开发者自定义的唯一订单号,订单支付成功后通过服务端支付结果回调回传 extraInfo string 非必填 游戏开发者自定义的其他信息,订单支付成功后通过服务端支付结果回调回传。字符串长度最大不能超过 256 goodType number 非必填(道具直购场景必填)默认游戏币。goodType 与 buyQuantity 任一传递即,可游戏币:0 或 1,道具直购:2 orderAmount number 非必填(道具直购场景必填)道具价格,人民币,单位分 goodName string 非必填(道具直购场景必填)道具名称 goodsId string 非必填 (礼包场景必填)礼包Id 小游戏平台的支付接口 接口文档 https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/payment/tt-request-game-payment 监听到用户打开推送的付费礼包并点击购买时触发事件回调。 关注抖音号 需要在开发者平台-设置中绑定抖音号 完成打开抖音号的回调。涉及用户信息,无法获取用户是否关注了抖音号的状态 打开抖音号失败的回调。errCode: 当关注抖音号失败,是否显示Toast弹窗提示,默认显示 CODE_ERROR = -1 CODE_NOT_SUPPORT = -2 CODE_NOT_LOGIN = -3 CODE_NO_ACTIVITY = -4 CODE_UID_ERROR = -5 是否已关注抖音号 是否关注的回调,参数表示是否已关注,true表示已关注,false表示未关注 是否在小程序开发者后台绑定了抖音号 是否绑定的回调,参数表示是否已绑定,true表示已绑定,false表示未绑定 创建快捷方式 创建快捷方式回调,参数为是否成功,true表示成功,false表示失败 当创建失败,是否显示Toast弹窗提示,默认显示 快捷方式是否已经创建 是否存在的回调,参数表示是否已创建,true表示已创建,false表示未创建 跳转到抖音视频 抖音视频videoId,复制抖音视频链接到浏览器即可得到 跳转结果,参数为是否成功,true表示成功,false表示失败 请求订阅消息 可以参考 小游戏相关文档 https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/open-capacity/subscribe-message/tt-request-subscribe-message/ 需要订阅的消息模板的 id 的集合,最多支持传入三个 tmplId 接口调用成功的回调函数 接口调用结束的回调函数(调用成功、失败都会执行) 接口调用结束的回调函数(调用成功、失败都会执行) 获取菜单按钮(右上角胶囊按钮)的布局位置信息。坐标信息以屏幕左上角为原点。 https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/api/interface/menu/tt-get-menu-button-layout/ JsonData width number 宽度,单位:px height number 高度,单位:px top number 上边界坐标,单位:px right number 右边界坐标,单位:px bottom number 下边界坐标,单位:px left number 左边界坐标,单位:px 提前向用户发出授权请求。该方法不会调用对应接口,只会弹框咨询用户是否授权或者获取用户信息。如果用户之前有授权,该接口直接返回成功,不会跟用户产生交互。 需要预授权的 scope,详见 https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/open-capacity/user-information/authorization/authorization/ 接口调用成功的回调函数 接口调用失败的回调函数 游戏互推组件能力 GridGamePanelCount,表示游戏推荐组件的格子数量 从组件内打开游戏时附带的query信息 GridGamePanelSize,表示组件大小,large:100%,medium:90%,small:80%。仅 gridCount = one | four 时有效。 控制游戏推荐组件的展示位置,不传入时默认展示在屏幕右下角。仅 gridCount = one 时有效。 添加宿主事件监听 事件名 回调函数,(result) => {},宿主事件触发后自动调用 移除宿主事件监听 事件名 监听游戏退出 返回值为true,则表示由开发者自行处理退出逻辑,可以调用 TT.ExitMiniProgram 来手动退出游戏。返回值为false,则默认退出游戏。 https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/open-capacity/game-rank/setImRankData 在关键的游戏场景,设置写入用户的排行榜数据(游戏成绩信息),该数据会上传到服务端 0:数字类型、1:枚举类型;数字类型(0)往往适用于游戏的通关分数(103分、105分),枚举类型(1)适用于段位信息(青铜、白银);--(Require) 展示出来的数值,dataType == 0 时只能传正数的字符串,否则会报错。value为具体的值,若dataType为0,请传入数字(eg:103、105);若dataType为1,则传入字符串(eg:青铜、白银)--(Require) dataType 为 1 时,需要传入这个值判断权重,dataType 为 0 时,不填即可--(Require) 预留字段--(Nullable) 排行榜分区标识--(Nullable) 以上参数使用json格式传入,例如"{"dataType":0,"value":"100","priority":0,"zoneId":"default"}" 回调函数 获取排行榜列表,调用 API 后, 根据参数自动绘制游戏好友排行榜 代表数据排序周期,day为当日写入的数据做排序;week为自然周,month为自然月,all为半年--(Require) 由于数字类型的数据与枚举类型的数据无法同时排序,因此需要选择排序哪些类型的数据--(Require) 选择榜单展示范围。default: 好友及总榜都展示,all:仅总榜单--(Nullable) 数据后缀,最后展示样式为 value + suffix,若suffix传“分”,则展示 103分、104分--(Nullable) 排行榜标题的文案--(Nullable) 排行榜分区标识--(Nullable) 以上参数使用json格式传入,例如"{"rankType":"week","dataType":0,"relationType":"all","suffix":"分","rankTitle":"","zoneId":"default"}" 回调函数 获取排序好的「好友/总榜」数据源,开发者基于数据源自行渲染返回的数据 day、week、month、all--(Require) 0:数字类型 、 1:枚举类型--(Require) friend:当前登录用户的好友的游戏数据排行,default:全部写入数据的排行 ,all: 总榜--(Require) 页码,从1开始--(Require) 每页长度,大于 0 小于 40--(Require) 排行榜分区标识--(Nullable) 以上参数使用Json格式传入, 获取成功回调 获取失败回调 抖音云功能相关接口 可以参考 小游戏抖音云相关文档 https://developer.open-douyin.com/docs/resource/zh-CN/developer/tools/cloud/develop-guide/invoke-sever/cloud-sdk 确认当前宿主版本是否支持跳转某个小游戏入口场景。 需要确认的入口场景(目前仅支持的入参为'sidebar') 接口调用成功的回调函数, bool为true说明支持,false表示不支持 接口调用结束的回调函数(调用成功、失败都会执行) 接口调用失败的回调函数 调用该API可以跳转到某个小游戏入口场景。支持福利信息透传 参数例子{"scene":"sidebar"[,"activityId":"一般跳转不用这个字段、忽略就好"]} 接口调用成功的回调函数, bool为true说明支持,false表示不支持 接口调用结束的回调函数(调用成功、失败都会执行) 接口调用失败的回调函数 注册用户参与复访营销活动。当前只支持侧边栏复访活动 指定用户参与的营销活动id,通过OpenAPI申请得到。未填写时,会由平台选择可用活动,可选,例如{"activityId":"111111"} 接口调用成功的回调函数, 接口调用结束的回调函数(调用成功、失败都会执行) 接口调用失败的回调函数 领取营销活动中完成任务后的奖励。当前只支持侧边栏复访活动 用户参与的营销活动id,通过OpenAPI申请得到。未填写时,会由平台选择可发放的奖励,可选,例如{"activityId":"7368350593716338729"} 接口调用成功的回调函数, 接口调用结束的回调函数(调用成功、失败都会执行) 接口调用失败的回调函数 替换敏感词 要检查和替换的词语 回调 int: 返回状态码,0为成功,否则为失败 string: 错误信息 JsonData: audit_result int 1: 有敏感内容;0: 无敏感内容 audit_content string 被替换的内容(无敏感内容则返回值与传入的word相同) 监听键盘输入事件 监听用户点击键盘确定按钮时的事件 监听键盘收起事件 显示软键盘(仅WebGL平台下支持) 参考: https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/interface/keyboard/tt-show-keyboard/ 键盘输入监听请设置 onKeyboardInputEvent 和 onKeyboardConfirmEvent 显示键盘的参数 显示软键盘成功回调: () => {} 显示软键盘失败回调,(errMsg) => {} 收起软键盘(仅WebGL平台下支持) 参考: https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/interface/keyboard/tt-hide-keyboard/ 隐藏软键盘成功回调: () => {} 隐藏软键盘失败回调,(errMsg) => {} 更新键盘,只有当键盘处于拉起状态时才会产生效果。 参考: https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/interface/keyboard/tt-show-keyboard/ 键盘输入监听请设置 onKeyboardInputEvent 和 onKeyboardConfirmEvent 键盘输入框的当前值 更新软键盘成功回调: () => {} 更新软键盘失败回调,(errMsg) => {} 监听开始触摸事件 监听触点移动事件 监听触摸结束事件 监听触点失效事件 取消监听开始触摸事件 取消监听触点移动事件 取消监听触摸结束事件 取消监听触点失效事件 抖音好友邀请 房间id 用于放在schema 里面的信息,Key-Value形式。 额外扩展信息, Key-Value形式。 调用结果回调: (isSuccess, errMsg) => {} Example TT.onInviteStateChanged = (state, msg) => { Debug.Log($"onInviteStateChanged - state: {state}, msg: {msg}"); }; var roomId = "12345"; var query = new JsonData {["test"] = "query"}; JsonData extra = null; TT.CreateInvitePanel(roomId, query, extra, (isSuccess, errorMsg) => { if (isSuccess) { Debug.Log("CreateInvitePanel success"); } else { Debug.Log($"CreateInvitePanel failed, {errorMsg}"); } }); 监听邀请状态变化事件 游戏收藏 收藏回调,true表示成功,false表示失败 取消游戏收藏 取消收藏回调,true表示成功,false表示失败 游戏是否已收藏 是否已收藏,true表示已收藏,false表示未收藏 收藏引导 弹窗类型,默认为底部弹窗 弹窗文案,仅style为 Tip 时可修改,最多显示 12 个字符。 调起引导用户复访的提示弹窗,目前仅抖音宿主支持。 为了更好的玩家体验,建议在按钮的点击回调中使用。 调起复访提示回调,true表示成功,false表示失败 设置剪切板信息 设置的内容 bool = true设置成功,反则关注错误信息 获取剪切板信息 bool = true获取成功,value为内容,反则关注错误信息 查询用户通过小游戏平台创建的群的信息 如游戏开发者在平台创建了群聊 ABC,那么游戏侧可以基于游戏开发者在这个游戏中的 openid,查询其在小游戏平台创建了哪些群,群的状态如何,做游戏内的加群逻辑优化 建群用户的 openid 必填 接口调用成功的回调函数 必填 接口调用失败的回调函数 必填 会话来源 可空 附加信息 可空 在平台创建群聊,获得 groupid 后,游戏内通过这个方法引导用户加入抖音群 群 ID 必填 接口调用成功/失败的回调函数 必填 会话来源 可空 附加信息 可空 方向监听 开始监听设备方向变化 "监听设备方向的变化回调函数的执行频率,game 适用于更新游戏的回调频率,在 20ms/次 左右,ui 适用于更新 UI 的回调频率,在 60ms/次 左右,normal 普通的回调频率,在 200ms/次 左右" 停止监听设备方向变化 设置是否保持屏幕常亮状态 是否保持屏幕常亮 接口调用成功的回调函数 接口调用失败的回调函数 获取屏幕亮度。 接口调用成功的回调函数,屏幕亮度值,范围 0 ~ 1。0 最暗,1 最亮。 接口调用失败的回调函数 设置屏幕亮度。 屏幕亮度值,范围 0 ~ 1。(0 最暗,1 最亮) 接口调用成功的回调函数 接口调用失败的回调函数 金币发放or扣除 订单类型,1-发放金币,2-消耗金币, int 点位ID,在开发者后台中金币配置中获取, string 金币数量, int 开发者自定义的订单号, string 以上参数使用json的形式传入,例如:{"type":1,"bizId":"xxxxx","goldNum":1,"customId":"xxxx"} 执行成功的回调函数,会返回平台订单号,例如:{"orderId":"xxxxx"} 接口调用成功的回调函数 接口调用失败的回调函数 退出程序 是否显示退出提示对话框,true为在退出前显示二次提示对话框架,false则不显示对话框而直接退出程序 接口调用成功状态回调,true表示成功,false表示失败 重启小游戏 保存游戏数据接口,所有游戏数据保存上限50M 数据名 可序列化的数据(存档类需标记为Serializable)[见以下的例子] 保存成功返回true,否则返回false [Serializable] class SaveData { public int IntValue = 99; private float FloatValue = 1.0f; public string StrValue = "My String"; public Dictionary<String,bool> map; public List<String> listStr; } SaveData sd = new SaveData(); sd.xx = yyy; bool ret = TT.Save<SaveData>(sd); 加载游戏数据接口,返回数据类型需为Serializable 数据名 SaveData loaded = TT.LoadSaving<SaveData>(); 删除游戏数据接口 数据名 TT.DeleteSaving<SaveData>(); 删除所有游戏数据 获取游戏数据磁盘总大小 数据名 控制sdk中的Log级别 开始监听陀螺仪 获取陀螺仪数据的间隔时间,单位为毫秒(ms),默认大小为 50 接口调用状态回调,(bool success, string errMsg) => {} 停止监听陀螺仪 接口调用状态回调,(bool success, string errMsg) => {} 陀螺仪回调 x 轴的角速度。 y 轴的角速度。 z 轴的角速度。 从设备启动到现在经过的时间戳,单位是 ms。 姿态角值,围绕 Z 轴旋转,也叫翻滚角。 姿态角值,围绕 X 轴旋转,也叫做俯仰角。 姿态角值,围绕 Y 轴旋转,也叫偏航角。 创建一个 UDP Socket 实例。 可以配置震动周期的手机震动接口,单位ms 震动周期 like long[] pattern = {0, 100, 1000, 3000}; 传入null则取消震动 重复次数,为-1则不重复 注意:WebGL平台下,只有两种震动:长和短。 pattern数组参数只能传入一个数值,传入小于1000 则为短震动,否则为长震动。 不支持取消和重复。即repeat参数无效。 > 开始监听加速度数据 加速度数据回调事件监听 接口调用状态回调,(bool success, string errMsg) => {} 停止监听加速度数据 接口调用状态回调,(bool success, string errMsg) => {} 获取系统字体,仅支持WebGL,AndroidNative方案无需调用此接口,使用默认字体时,便会自动使用系统自动字体。 字体资源回调,可为null,开发者需要做好兜底 向用户请求授权允许游戏在满足一定的条件后出现在Feed流中 type(strings)(必传,订阅Feed流的类型) scene(int)订阅的场景ID(type='play'时必传)) contentIDs(jsonArray) 自定义文案ID(type='play'时必传)) allScene(bool)全场景订阅(非必传,默认值为false,全场景订阅为true时scene、contentId可不传) 例如:{"type":"play","scene":111,"contentIDs":["xxxx"], "allScene": false},{"type":"play","allScene": true} 接口调用成功的回调函数, 包含以下内容,errMsg(回调信息),success(用户的订阅结果(true为成功,false为订阅失败,具体原因看errMsg)) 接口调用失败的回调函数 接口调用结束的回调函数(调用成功、失败都会执行) 查询用户的授权情况。 type(strings)(必传,订阅Feed流的类型), scene(int)订阅的场景ID(type='play'时必传)), allScene(bool)全场景订阅(非必传,默认值为false,全场景订阅为true时scene可不传) 例如:{"type":"play","scene":1111, "allScene": false}, {"type":"play","allScene": true} 接口调用成功的回调函数,包含以下内容,errMsg(回调信息),success(用户的订阅结果(true为已经订阅,false为用户未订阅)) 接口调用失败的回调函数 接口调用结束的回调函数(调用成功、失败都会执行) 获取直播间管理器对象 确定本次游戏启动是否是容灾启动 是否是容灾启动 获取小游戏管理更新对象 获取公会绑定群信息 给指定公会绑定公开群 解除公会和公开群的绑定关系 加入工会群聊 触控事件适配 挂载到 EventSystem 对象上以解决 WebGL 方案下多点触控时,部分触点 PointerUp 等事件丢失的问题。 当前脚本会通过重载 StandaloneInputModule,将全局鼠标/触控事件映射到 TTSDK。 如果需要进一步重载 UnityEngine.Input,请参考 UnityInputOverride.cs。 如果不需要全局重载,可使用 TT.GetTTInput() 手动挂载触控监听。 勾选 DebugTraceEnabled,可以打印更多调试日志。 仅在 WebGL 方案下生效;Native 和 Unity Editor 环境中不会有任何作用。 是否启用 DebugMode 开启时,在 Touch 事件触发时会输出调试日志。 是否启用 Mock 开启时,允许在 Unity Editor 环境下使用 Mock 实现调试,Mock 效果不代表真机情况。 当前激活的触控点 要重载的 StandaloneInputModule 对象 当前是否已重载 重载是否处于已激活状态 获取 InputModule 对象 启用时注册事件并设置 InputOverride 禁用时移除事件并还原 InputOverride 注册触控事件 移除触控事件监听 响应触控开始 响应触控移动 响应触控结束 响应触控取消 每帧结束后,设置 Began 触控点为按住状态,并清理已结束的触控点 获取已存在的 TouchData 创建一个新的 TouchData 获取 TouchData 找不到则创建 更新指定 TouchData 移除所有已经结束的触控点 AndroidCallJs的通讯接口 确保在主线程执行初始化。 发送消息到Native 异步Call通讯 消息类型0-call消息,1-listen消息,2-unlisten消息,3-event消息 目标接口 参数 异步Call通讯,确保调用在主线程执行 同步Call通讯 消息类型0-call消息,1-listen消息,2-unlisten消息,3-event消息 目标接口 参数 同步Call通讯 查询h5是否支持某个接口 混合Call通讯,确保调用在主线程执行 目标API接口 参数 回调ID 处理Android通讯的工具类 确保在主线程执行初始化。 发送消息到Native 异步Call通讯 消息类型0-call消息,1-listen消息,2-unlisten消息,3-event消息 目标接口 参数 混合Call通讯,调用直接返回一段String的数据,同时会有回调。 目标API接口 参数 回调ID 异步Call通讯 同步Call通讯 消息类型0-call消息,1-listen消息,2-unlisten消息,3-event消息 目标接口 参数 同步Call通讯 查询Native层是否支持某个API 接口名 BridgeAPI的包装类 BridgeAPI的委托 回调接口 回调被添加的事件,ns 默认Call超时,默认使用通用的超时,10秒 回调成功 回调失败 失败码 失败原因 超时 失败回调,https://bytedance.larkoffice.com/docx/PPaodkE5docWC3xqYJuc5IPJnRe 新错误码规范 UBridge的内部实现 超时时间 成功 接口未支持 接口不支持异步调用 缺少参数 接口不支持同步调用 以callback_id为key维护回调。 以接口名为key,维护回调 Unity侧以接口的形式实现的API,比委托优先 Unity侧以委托的形式实现的API 本地注册的事件列表 Native端注册的事件列表 超时定时器 定时器是否已经启动,避免重复启动; 超时时间,默认10秒 启动超时定时器 停止超时定时器 重新设置Call的超时时间 单位ms Unity注册接口形式的API接口 接口名 接口实现 Unity注册委托形式的API 接口名 接口实现 Unity注销接口形式的API接口 接口名 Unity注册事件 Unity发送事件消息 目标事件 数据 异步调用native的方法 目标接口 参数数据 回调 异步调用native的方法 目标接口 参数数据 回调 监听事件 目标接口 新的监听是否覆盖旧的 回调 关闭监听事件 目标接口 处理Native调用过来的消息 消息数据,JSON格式 处理Native的调用消息。 处理Unity调用Native回来的回包。 消息的封装 消息ID 消息类型,消息类型0-call消息,1-listen消息,2-unListen消息,3-event消息 回调,唯一 错误码 消息来源 目标接口或者事件 错误消息 错误类型 数据 参数 Unity侧的SDK版本号 Native侧的SDK版本号 SDK的版本信息 SDK版本号 从JsonData中安全的读取数据的帮助类 读取int 读取string 读取JsonData 读取Object Bridge接口 iOS的通信接口 确保在主线程执行初始化。 发送消息到Native 异步Call通讯 消息类型0-call消息,1-listen消息,2-unlisten消息,3-event消息 目标接口 参数 异步Call通讯,确保调用在主线程执行 同步Call通讯 消息类型0-call消息,1-listen消息,2-unlisten消息,3-event消息 目标接口 参数 同步Call通讯 混合Call通讯,调用直接返回一段String的数据,同时会有回调。 目标API接口 参数 回调ID 查询Native层是否支持某个API 接口名 日志辅助类 线程调度 处理消息 打包成功的回包 请求的消息 回包的数据 打包失败的回包 请求的消息 错误码 错误信息 打包异步Call消息 消息类型0-call消息,1-listen消息,2-unListen消息,3-event消息 目标接口 参数 回调的id 打包同步Call消息 消息类型0-call消息,1-listen消息,2-unListen消息,3-event消息 目标接口 参数 打包事件的消息 目标事件 数据 解析消息 JSON格式的消息 同步调用的结果转换 JSON字符串 Bridge的上下文 回调成功 数据 回调失败 错误码 错误信息 webgl的通讯接口 确保在主线程执行初始化。 发送消息到Native 异步Call通讯 消息类型0-call消息,1-listen消息,2-unlisten消息,3-event消息 目标接口 参数 异步Call通讯,确保调用在主线程执行 同步Call通讯 消息类型0-call消息,1-listen消息,2-unlisten消息,3-event消息 目标接口 参数 同步Call通讯 查询h5是否支持某个接口 混合Call通讯,确保调用在主线程执行 目标API接口 参数 回调ID Android 旧的实现 (stark) Android 新的实现 (TT) TT 和 Stark 旧接口的兼容模式,每个接口在调用时通过 TTNativeCallSettings.IsCallJs 检查是用 TT 的实现还是旧的 Stark 实现 iOS 平台的 call bridge 实现 WebGL 平台的 call bridge 实现 UNBridge 调用的接口形式封装,方便分发各平台的独立实现 Unicode转utf8编码 Make sure the UnityCache folder disk occupation is under the limit Will be checked consquently since the Addressable or the developer might overwrite it. Android UI管理器 调用Android原生UI界面 Android Toast提示 类似于直接调用Toast.makeText(context, message, Toast.LENGTH_SHORT).show() 提示信息 Android Toast提示 类似于直接调用Toast.makeText(context, message, Toast.LENGTH_LONG).show() 提示信息 Android 弹出式对话框 标题 内容 确认按钮文本 取消按钮文本 对话框是否取消(点击空白区域关闭界面) 点击确认按钮回调 点击取消按钮回调 Android 进度加载弹窗 提示信息 Loading弹窗是否取消(点击空白区域关闭界面) Loading弹窗关闭回调 隐藏进度加载弹窗 以同步的隐藏一个弹框 Converts the specified string to an HTML-encoded string. This method starts encoding with a NCR from the character code 160 but does not stop at the character code 255. One reason is the unicode characters < and > that look like < and >. A that represents an encoded string. A to encode. A : true if encodes without a NCR; otherwise, false. Initializes the _entities field. This method builds a dictionary of HTML character entity references. This dictionary comes from the HTML 4.01 W3C recommendation. Mock设置类 用于记录开放了哪些模块 获取当前设置的每个模块是否开放 打开所有的Mock模块,默认关闭所有模块 关闭所有的Mock模块,默认关闭所有模块 分模块设置各个功能模块对应的Mock UI开放和关闭,默认关闭所有模块 extraData 大部分模块默认填null即可,目前已知的应用场景如下: module == MockModule.Host,enable == true,则extraData为的变量,模拟当前在何处启动等 目标功能模块 是否开放 额外数据 判断一个功能模块的Mock层是否已经打开 目标模块 Mock层是否打开 使用GUI绘制出Mock层的工具类 初始化 键值对显示mock选项 要显示的内容 当前显示的目标模块 获取屏幕密度,和屏幕的英寸长度dpi = a*a+b*b然后开平方再除以 屏幕英寸。 dp = px * (dpi / 160) 创建一个UI用于显示提示 `PlayerPrefs` is a class that stores Player preferences between game sessions. It can store string, float and integer values into the user’s platform registry. Sets a single integer value for the preference identified by the given key. You can use PlayerPrefs.GetInt to retrieve this value. Returns the value corresponding to key in the preference file if it exists. Sets the float value of the preference identified by the given key. You can use PlayerPrefs.GetFloat to retrieve this value. Returns the value corresponding to key in the preference file if it exists. Sets a single string value for the preference identified by the given key. You can use PlayerPrefs.GetString to retrieve this value. Returns the value corresponding to key in the preference file if it exists. Returns true if the given key exists in PlayerPrefs, otherwise returns false. Removes the given key from the PlayerPrefs. If the key does not exist, DeleteKey has no impact. Removes all keys and values from the preferences. Use with caution. Writes all modified preferences to disk. Unity小游戏为容灾恢复准备的存档读写工具类 和通用存档读写接口 TT.Save TT.LoadSaving 共用同个存储空间。 通过此工具类写入的存档只会在容灾启动时得到保留,正常启动会清理所有容灾存档。 保存游戏数据接口,所有游戏数据保存上限50M 数据名 可序列化的数据(存档类需标记为Serializable)[见以下的例子] 保存成功返回true,否则返回false 加载游戏数据接口,返回数据类型需为Serializable SaveData loaded = TT.LoadSaving<SaveData>(); 删除游戏数据接口 TT.DeleteSaving<SaveData>(); 删除所有容灾游戏数据,若此次启动并非容灾,则StarkSDK会在初始化完成时自动调用该接口。 和其他存档保存区分开,增加特殊前缀,方便后续统一管理 目前只有Webgl需要使用,文件管理器直接用webgl版本 通过客户端的埋点上报工具上报 团结引擎运行时平台 小游戏 开放鸿蒙 Android HMI 引擎发行版 未知 Unity 引擎 团结引擎 平台相关判断工具类 是否是团结引擎 是否是类 WebGL 平台 是否是类 Android 平台 通用Unity单例 Toast提示 提示信息 Toast提示 提示信息 时间工具类 获取当前时间,单位ms 用于适配 Unity 版本间 API 迁移 调用 UnityWebRequest.PostWwwForm 视频裁剪工具类 创建用于视频裁剪的时间片段 (需要在开始录屏后调用) 以调用时的录屏时刻为基准,指定前 x 毫秒,后 y 毫秒为将要裁剪的片段,可以多次调用,记录不同时刻。 在结束录屏时,可以调用 ClipVideo 接口剪辑并合成记录的片段。 记录那一刻前的毫秒数 记录那一刻后的毫秒数 TTGameRecorder.TimeRange 封装了和Native通讯的接口。 初始化Bridge 重新设置Call的超时时间,单位毫秒 单位ms Unity注册API,以接口的形式 接口名 接口的实现 Unity注册API,以委托的形式提供 Unity注册API,以接口的形式 接口名 接口的实现 Unity注册事件 Unity发送事件消息 异步调用native的方法,不需要回调和参数 目标接口 异步调用native的方法,不需要回调 目标接口 参数数据 异步调用native的方法 目标接口 参数数据 回调 异步调用native的方法 目标接口 参数数据 回调 超时,默认10秒,单位毫秒 混合Call,函数可以带回一段string数据 目标API 混合Call,函数可以带回一段string数据 目标API 参数 混合Call,函数可以带回一段string数据,同时有回调 目标API 参数 混合Call,函数可以带回一段string数据,同时有回调 目标API 参数 回调 超时时间 同步调用native的方法 目标接口 参数数据 监听事件 目标接口 回调 监听事件 目标接口 新的监听是否覆盖旧的 回调 关闭监听事件 目标接口 查询Native层是否支持某个API 处理Native调用过来的消息,通讯接口 消息数据,JSON格式