starksdkRuntime 宿主枚举 入口枚举 SC的运行环境 Apk的版本环境 保存宿主环境变量 获取query字段,即小程序的启动参数,可能为空,使用时需判空 获取小程序启动时的参数,里面的参数可能为空,使用时需判空; 可以在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级别 账号模块 获取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>(); 删除所有游戏数据 获取游戏数据磁盘总大小 数据名 获取游戏跳转模块 获取视频播放接口 StarkVideoManager 打开客服聊天页 打开客服聊天页回调,参数为是否成功,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) => {} 获取键盘管理器(仅WebGL支持) StarkKeyboard 创建mock模块 获取游戏记录的Mock 获取广告的Mock 获取分享的Mock 收藏模块的Mock 获取账号模块的Mock 获取账号模块的Mock 记录已判断支持的函数 记录已判断不被支持的函数 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 callback object passed in Replacement for UNBridge.Call with callback with timeout native method object to be called callback object passed in callback timeout Replacemenet 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 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 : 取消 创建回调,参数为是否成功 是否可以使用 打印到文件 初始化打印文件的变量 结束打印 文件名称 是否需要打印栈信息 是否在StarkContainer真机环境下 是否显示调试Toast提示。当调用StarkSDK相关接口后,获得函数执行状态(主要是失败状态)的反馈。 设置为true则在调用StarkSDK相关接口后,会自动弹出Toast提示。默认不显示。【建议只在调试状态下开启】 Stark_UnitySDK初始化函数 error code : 0 , 无错误 1, stark unity sdk 版本不支持 2,unity engine 版本不被支持 判断是否运行在StarkContainer StarkSDK运行再错误的环境中 Hostid 转换 对应关系 https://bytedance.feishu.cn/sheets/shtcn959RKBOao1tFJAwEBTI1lf HostEnum 从Java层传输来的数据和C#层的UC运行环境之间的转换 从Java层传输来的数据和C#层版本类型枚举做转换 当游戏第一次启动以及被其他游戏拉起,或者再次拉起时调用外部摄入的回调方法,并立即写入文件 将Json解析成互跳信息对象 The android bridge of the Container SDK. Make sure the UnityCache folder disk occupation is under the limit Will be checked consquently since the Addressable or the developer might overwrite it. 单例抽象类 在竖屏正方向下的安全区域 安全区域左上角横坐标 安全区域右下角横坐标 安全区域左上角纵坐标 安全区域右下角纵坐标 安全区域的宽度,单位逻辑像素 安全区域的高度,单位逻辑像素 机型性能评分 屏幕方向 竖屏 横屏 系统信息 当前宿主名,如 Douyin 当前宿主版本号,如 19.2.0 StarkContainer 底层框架版本号 ,如 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 获取到当前的性能数据 更新需要上报的数据 当前统计到的最新的数据 计算平均表现 结果值 获取用户存档空间 判断当前SC版本是否大于等于给定的版本 主版本号 中间版本号 获取小游戏Settings, 适用版本 >= 5.31.0 获取的数据key 是否使用缓存 获取应用信息:schema、appid、接口黑白名单、应用版本、应用 pkg 类型、应用技术形态, 适用版本 > 5.32.0 是否需要session字段 游戏版本号是从AndroidManifest.xml解析出来 游戏发布版本号,发布版本时发布工具中指定的版本号 根据CI填写 Container的Version RTC模块 登录 检查当前session是否有效 获取当前的用户信息 判断用户是否已经授权给当前游戏读取个人信息 该API会调用宿主的代码,如果调用宿主代码成功则会调用onGetUserInfoAuth,并返回是否已经授权 如果调用宿主代码失败则会调用onGetUserInfoAuthFail 主动打开获取用户信息的授权界面 该API会调用宿主的代码,如果调用宿主代码成功则会调用onGetUserInfoAuth,并返回最新的授权状态 如果调用宿主代码失败则会调用onGetUserInfoAuthFail 用户在实名认证弹窗完成实名认证后回调 必须在游戏初始化阶段就调用 广告管理模块,请求,播放激励视屏广告 其他类型广告待实现 设置激励视频广告的回调。获取完整的回调信息,一般处理都可以通过ShowVideoAd完成,评估必要性 已播放时长. video ad state. Usually only state of `VideoAdState.Loaded` means it is properly loaded. 根据广告错误判断是否需要retry 广告是否加载完成 初始化 请求加载激励视频广告 加载广告,并在某些错误情况下进行有限次重试 异步请求并显示广告 未进行视频裁剪 视频裁剪中 视频裁剪完成 视频裁剪失败 开始录屏回调 录屏完成回调 录屏失败回调 录屏超时回调 视频裁剪成功回调 视频裁剪失败回调 视频分享成功回调 视频分享失败回调 视频分享取消回调 视频录制状态 视频裁剪状态 视频分享状态 录制完成后的视频路径 裁剪后的视频路径 自助配乐 录屏开启状态,-1未知,0未开启,1开启。 设置录屏是否开启 获取录屏开启状态 返回true则表示录屏开启,返回false为录屏关闭 开始录屏 是否录制声音,默认为录制声音 最大录制时长,单位 s。小于等于 0 则无限制。默认为10分钟 视频录制开始回调 视频录制失败回调 录屏超时回调 函数调用状态,调用成功返回true,否则返回false WebGL开始录屏 视频录制开始回调 视频录制失败回调 获取录屏时长 返回录屏时长,单位 ms 视频裁剪 需要裁剪的时间片段,允许为null或空列表,如果列表为null或空, 则默认使用RecordClip调用记录的时间片段,会对重合的时间进行合并,然后进行视频裁剪。 如果不为空,则按传入的裁剪片段进行视频裁剪,时间片段重叠不会进行合并。主要用于乱序拼接。 函数调用状态,调用成功返回true,否则返回false 分享视频 获取录屏状态 VideoRecordState 获取视频分享状态 VideoShareState 构造函数 显示视频 获取上一次的拉起信息 判断自己本身是否被其他游戏拉起 初始化 跳转至某个游戏 保存导航信息 调用从互调返回时的回调函数 游戏id 游玩时间 额外数据 从服务器拉取互跳信息 保存一个互跳信息 游戏id 自定义的query值 额外数据 视频链接 这条互跳信息的来源 保存自定义信息,用于传递给上一个拉起自己的游戏 监听自己本身是否被其他游戏拉起 Dic的扩展方法 当游戏Activity#OnResume的方法被调用时调用该C#方法 OK 禁止录屏 录屏SDK未初始化 视频文件不存在 开始录屏错误 视频裁剪失败 视频分享失败 视频分享取消 视频文件异常 广告模块未初始化 广告ID为空 广告模块异常 广告加载失败 加速器数据回调 RTC连麦接口模块 rtc 连麦 接口文档:https://bytedance.feishu.cn/docx/doxcnKNEvQGmLTwupIvWDSqh1nd 需要白名单 获取 RtcEngine 实例(包含音视频应用程序调用的主要方法的接口类实例),应当只调用一次, 重复调用返回上次创建的,destroy后则重新创建。 rtc服务使用的appId 销毁EtcEngine实例 成功回调 失败回调 加入到通信房间 加入语音频道的id 加入语音频道用户的唯一标识,建议统一使用当前用户的 openId/匿名 openId 成功回调 失败回调 离开当前频道 成功回调 失败回调 执行结果,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类型事件。当event 为空的时候,会移除所有RtcEngine上的事件监听。可传入参数如下,分别对应上面事件。当不传入时,默认移除所有事件监听 监听列表 首次加入房间成功。用户手动调用 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 后才可以。 当内部发生警告信息时回调该事件 当内部发生不可逆转测错误时回调,比如加入房间失败 当前的登录状态 登录后获取登录的用户信息 Stark账号系统 登录成功 临时登录凭证, 有效期 3 分钟。可以通过在服务器端调用 登录凭证校验接口 换取 openid 和 session_key 等信息。 用于标识当前设备, 无论登录与否都会返回, 有效期 3 分钟 判断在当前 APP(头条、抖音等)是否处于登录状态 登录失败 错误消息 检查Session接口调用失败的回调函数 错误原因 接口调用成功的回调函数 获取用户信息失败的回调 失败信息 获取用户信息成功的回调 目标用户信息 用户实名认证成功的回调 判断当前用户是否已经授权给游戏读取自身的信息 是否授权 调用接口判断当前用户是否已经授权时失败或者发生内部错误 登录-获取临时登录凭证 强制登录默认为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 用户在实名认证弹窗完成实名认证后回调 需要在初始化时设置,回调时机为:游戏中弹出实名认证,用户完成了实名认证时触发 广告管理模块 支持激励视屏,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 表明错误码和错误描述. 视频广告详细过程回调,一般可以不关注. 创建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. 创建并播放插屏广告,在广告模块启动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 表明错误码和错误描述. 广告视频关闭回调. 广告加载回调. --------------------------------------------------------------------- BannerAd 对象 显示。如果加载出错,会调用CreateBannerAd的参数 errCallback 隐藏 销毁 改变样式 成功后会调用CreateBannerAd的参数 resizeCallback 横屏下可以更改位置和宽度,竖屏下只能更改位置。 是否有效,bannerad在load出错的情况下,如果adInterval为-1,则无法再进行刷新。此时认为已失效,需要destory再重新创建 InterstitialAd 对象 加载 显示 是否已加载 销毁 Banner样式 广告位区域左上角横坐标 广告位区域左上角纵坐标 广告位区域宽度 广告位区域高度,受广告内容影响自主变化, 无法由外部指定 广告的回调函数 广告加载成功 广告开始播放 广告失败,错误码同 ShowVideoAd 广告关闭回调 已播放时长. 有效播放时长(超过此时长可以授予激励). 视频总时长. 设置激励视频广告的回调。获取完整的回调信息,一般处理都可以通过ShowVideoAdWithId完成,需要时使用 激励视频广告的回调. 是否显示广告加载进度弹窗 游戏收藏 收藏回调,true表示成功,false表示失败 取消游戏收藏 取消收藏回调,true表示成功,false表示失败 游戏是否已收藏 是否已收藏,true表示已收藏,false表示未收藏 收藏引导 弹窗类型,默认为底部弹窗 弹窗文案,仅style为 Tip 时可修改,最多显示 12 个字符。 游戏内录屏模块 是否显示视频分享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 抖音好友邀请状态变化 状态值, 参考@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) => {} 游戏跳转返回的跳转信息 用处: 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同学配置,本地配置方法见类 StarkNavigateGame的注释。 跳转返回时调用该方法 跳转失败时调用该方法,如没有获取到跳转信息 视频界面关闭时的回调 跳转到对应游戏时传递的自定义参数 直接跳转至目标索引号所代表的游戏 互跳的条目信息可有两个来源,网络动态拉取找对应QA同学配置,本地配置方法见类 StarkNavigateGame的注释。 在服务器配置的游戏索引号,从0开始 跳转返回时调用该方法 跳转失败时调用该方法,如没有获取到跳转信息 跳转到对应游戏时传递的自定义参数 拉起方读取被拉起方传递的信息,只有A拉起B后,A被杀死无法从B获取通知时该接口才会有数据 该接口涉及到读文件、Native方法调用,比较耗时,不可频繁调用! 是否查找到跳转信息 判断当前游戏是否被另一个游戏拉起 该游戏被该appid对应的游戏拉起,若不是被拉起的appid为"" 获取从拉起方传递来的自定义数据,若不是被拉起的navigateExtraParam为"" true:当前游戏是被其他游戏拉起的,false:当前游戏不是由其他游戏拉起的 初始化,从服务器获取导航信息 不开放给用户StarkSDK实现的调用SCPlugin的存储文件的方法 当该游戏由其他游戏拉起时,设置的回调 被哪个游戏拉起 被拉起游戏设置的额外信息 CP自己设置的在本游戏中推荐的游戏 目标appid 设置的query值 自定义的额外信息 视频的url链接 被拉起方的游戏设置传递给拉起方的信息,拉起方可以读取设置的该信息 游戏A拉起了游戏B: A若拉起B后在后台被杀死则通过接口可以获取到设置的信息 A若拉起B后依旧在后台则通过设置的接口通知设置的信息 该接口涉及到写文件、Native方法调用,比较耗时,不可频繁调用! 设置从其他游戏拉起的事件监听,从其他游戏拉起时会调用该回调 一定要早于StarkSDK的初始化 特定游戏的id 供Java侧调用,获取保存到Unity本地的互跳信息 非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 游戏内网络请求模块 请求相关设置 网络请求方法,支持 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/ 请求地址 相关设置 请求'成功'的回调 请求失败的回调 分享成功 分享失败 错误消息 分享取消 通用分享 分享成功回调 分享失败回调 分享取消回调 可填的字段信息参考: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 视频播放回调接口 视频在列表中的位置(第一个位置从0开始) 视频点击回调 文本点击回调 播放的视频页发生变化 视频播放结束 视频播放失败 视频界面关闭回调 视频播放模块 抖音短视频分享链接 用于显示的文本 文本颜色,默认为白色 抖音视频播放 视频列表(如果之前有播放过视频,下次调用时可以传 null 或空列表) 视频播放回调,具体参见 StarkVideoCallback 定义 视频播放窗口的关闭按钮延迟显示时间,单位毫秒,小于等于0则表示立即显示。 窗口横坐标位置(相对于屏幕左上角) 窗口纵坐标位置(相对于屏幕左上角) 视频播放窗口宽度,小于等于0则占满屏幕宽度 视频播放窗口高度,小于等于0则占满屏幕高度 List<StarkVideoManager.StarkVideo> videos = new List<StarkVideoManager.StarkVideo>(); videos.Add(new StarkVideoManager.StarkVideo("https://v.douyin.com/JppLfuu/", "This is the first video")); StarkVideoCallback callback = new StarkVideoCallback(); callback.OnVideoClickedCallback = index => { Debug.Log("video clicked, index: " + index); }; callback.OnTextClickedCallback = index => { Debug.Log("text clicked, index: " + index); }; callback.OnVideoPageChanged = index => { Debug.Log("video page selected, index: " + index); if (index + 1 == StarkSDK.API.GetStarkVideoManager().GetVideoCount()) { var video = new StarkVideoManager.StarkVideo { VideoUrl = "https://v.douyin.com/Jpgo15A/", VideoText = "This is a new video", TextColor = 0xff00ff00, }; StarkSDK.API.GetStarkVideoManager().AddVideo(video); // if you want add multiple videos, you can call 'StarkSDK.API.GetStarkVideoManager().AddVideos' to add a video list } }; callback.OnVideoPlayCompleted = index => { Debug.Log("video play completed, index: " + index); }; callback.OnVideoPlayError = index => { Debug.Log("video play error, index: " + index); }; 关闭窗口 添加视频到播放列表末尾 视频信息 添加多个视频到播放列表末尾 视频列表信息 获取当前列表中的视频数量 视频数量 开始播放当前页展示的视频 暂停当前正在播放的视频 视频是否正在播放 正在播放返回 true ,否则返回 false 广告模块的mock层 登录的mock方法 检查session是否有效的mock方法 获取用户信息的mock方法 获取用户授权状态 主动打开授权界面,然后获取最新的授权状态 用户在实名认证弹窗完成实名认证后回调 必须在游戏初始化阶段就调用 Banner广告的Mock模块 插屏广告的Mock模块 广告模块的mock层 收藏模块的Mock层 录屏模块的mock层 Banner广告的Mock模块 分享模块的mock层 分享模块的mock层 分享模块的mock层 登录成功回调 是否是断线重连,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 域名 服务 数据 成功回调 失败回调 Android Toast提示 类似于直接调用Toast.makeText(context, message, Toast.LENGTH_SHORT).show() 提示信息 Android Toast提示 类似于直接调用Toast.makeText(context, message, Toast.LENGTH_LONG).show() 提示信息 Android 弹出式对话框 标题 内容 确认按钮文本 取消按钮文本 对话框是否取消(点击空白区域关闭界面) 点击确认按钮回调 点击取消按钮回调 Android 进度加载弹窗 提示信息 Loading弹窗是否取消(点击空白区域关闭界面) Loading弹窗关闭回调 隐藏进度加载弹窗 以同步的隐藏一个弹框 Mock设置类 用于记录开放了哪些模块 是否屏蔽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用于显示提示 通用Unity单例 Toast提示 提示信息 Toast提示 提示信息 时间工具类 获取当前时间,单位ms 创建用于视频裁剪的时间片段 (需要在开始录屏后调用) 以调用时的录屏时刻为基准,指定前 x 毫秒,后 y 毫秒为将要裁剪的片段,可以多次调用,记录不同时刻。 在结束录屏时,可以调用 ClipVideo 接口剪辑并合成记录的片段。 记录那一刻前的毫秒数 记录那一刻后的毫秒数 StarkGameRecorder.TimeRange 处理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秒 回调成功 回调失败 失败码 失败原因 超时 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 Determines whether the json contains an element that has the specified key. The key to locate in the json. true if the json contains an element that has the specified key; otherwise, false. Unity声音录制 Unity层使用的接口 开始录屏 停止录屏 开启录制游戏声音 关闭录制游戏声音 设置录制分辨率 Unity层使用的接口 检查是否有多个ActiveAndEnable AudioListener Unity声音录制接口 声音采样间隔,单位毫秒 是否需要将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层使用的接口 Unity版本号,每对外升级一次,自增1,详情见 UnityRenderEvent的回调的指针,可以通过 录制图片 录制纹理 传递Unity前后台切换消息 录音,传递PCM的float数组 录音,传递PCM的byte数组 传递录音的配置参数,JSON格式 通知JNI DeAttach 当前线程,不然会引起crash 设置使用的音频引擎类型:0-unity,1-wwise plugin, 2-wwise mix 开始录屏 停止录屏 开启录制游戏声音 关闭录制游戏声音 Unity声音录制 将数组添加到List里。 Unicode转utf8编码 封装了和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格式