chsdk.d.ts 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341
  1. declare namespace chsdk {
  2. /**服务器类型对应地址*/
  3. enum serverType {
  4. test = 1,
  5. /**测试服*/
  6. dev = 2,
  7. /**正线服*/
  8. online = 3
  9. }
  10. /**广告类型*/
  11. enum ad_type {
  12. /**激励视频*/
  13. rewarded = "Rewarded",
  14. /**插屏广告*/
  15. interstitial = "Interstitial",
  16. /**banner 广告*/
  17. banner = "Banner",
  18. /**自定义广告*/
  19. custom = "Custom"
  20. }
  21. /**广告状态*/
  22. enum ad_state {
  23. /**展示失败*/
  24. fail = 0,
  25. /**展示成功*/
  26. show = 1,
  27. /**完整展示或点击*/
  28. rewarded = 2
  29. }
  30. /**日志等级*/
  31. enum loglevel {
  32. OFF = 0,
  33. ERROR = 1,
  34. WARN = 2,
  35. DEBUG = 3,
  36. INFO = 4,
  37. ALL = 5
  38. }
  39. /**请求码*/
  40. enum code {
  41. fail = 999,
  42. /**请求成功*/
  43. success = 0,
  44. /**token失效 */
  45. token_err = -1,
  46. /**请求超时*/
  47. time_out = 1001,
  48. /**同一接口请求次数超出限制*/
  49. too_many_requests = 1002
  50. }
  51. /**更新周期
  52. 1永久,
  53. 2日更新,
  54. 3周更新,
  55. 4月更新
  56. */
  57. enum updateType {
  58. none = 1,
  59. day = 2,
  60. week = 3,
  61. month = 4
  62. }
  63. /**平台*/
  64. enum pf {
  65. /**测试*/
  66. web = "web",
  67. /**微信*/
  68. wx = "wx",
  69. /**抖音*/
  70. tt = "tt"
  71. }
  72. type pf_conf = {
  73. adUnitId: string;
  74. multiton: boolean;
  75. inster_unitId?: string;
  76. tmplIds?: string[];
  77. bannerAds?: {
  78. adUnitId: string;
  79. adIntervals: number;
  80. style: {
  81. left: number;
  82. top: number;
  83. width: number;
  84. height: number;
  85. };
  86. }[];
  87. } | null;
  88. /**初始化sdk,并登录对应平台
  89. * @param gid 游戏ID(开发后台配置)
  90. * @param loglevel 日志级别 关闭=0, ERROR = 1, WARN = 2, DEBUG = 3, INFO = 4, ALL = 5,
  91. * @param serverIP 服务器类型 测试服 =2, 正线服 = 3,
  92. * @returns code === 0 成功 err?=错误信息
  93. */
  94. function init(gid: string, loglevel: loglevel, serverIP: serverType): Promise<{
  95. code: number;
  96. err?: string;
  97. data?: any;
  98. }>;
  99. /**当前平台*/
  100. function get_pf(): pf;
  101. /**玩家平台信息*/
  102. function get_player_info(): {
  103. nickName: string;
  104. avatarUrl: string;
  105. gender: number;
  106. hid: number;
  107. province: string;
  108. ip: string;
  109. loginTime: number;
  110. registerTime: number;
  111. };
  112. /**游戏id*/
  113. function get_gid(): string;
  114. /**游戏是否初始完毕*/
  115. function get_inited(): boolean;
  116. /**玩家id*/
  117. function get_uid(): number;
  118. /**玩家openid*/
  119. function get_openid(): string;
  120. /**获取平台上用户的呢称和头像,获取成功后自动同步到服务器,一般在进排行榜前调用*/
  121. function getUserInfo(): Promise<{
  122. nickName: string;
  123. avatarUrl: string;
  124. gender: number;
  125. }>;
  126. /**播放奖励广告
  127. * @param scene 奖励目的场景
  128. playRewardAd("复活")
  129. .then(success => {
  130. if (success) {
  131. console.log("广告播放成功,用户获得奖励");
  132. // 在这里执行成功后的操作
  133. } else {
  134. console.log("广告播放失败,用户未获得奖励");
  135. // 处理广告播放失败的逻辑
  136. }
  137. })
  138. .catch(error => {
  139. console.error("发生未处理的错误: ", error);
  140. });
  141. */
  142. function playRewardAd(reason: string): Promise<boolean>;
  143. /**展示插屏广告*/
  144. function showInsterAd(scene: string): Promise<boolean>;
  145. /**关闭插屏广告*/
  146. function destroyInsterAd(): void;
  147. /**展示Banner广告*/
  148. function showBannerAd(index: number, scene: string): Promise<boolean>;
  149. /**隐藏Banner广告 */
  150. function hideBannerAd(index: number): void;
  151. /**设置广告配置*/
  152. function setConf(pf: pf, conf: pf_conf): void;
  153. /**当前平台是否有侧边栏功能*/
  154. function checkHasSidebar(): boolean;
  155. /**抖音是否从侧边栏进入游戏,微信是否从我的小程序进入游戏*/
  156. function checkFromSidebar(): boolean;
  157. /**抖音进入侧边栏*/
  158. function goToSidebar(): Promise<boolean>;
  159. /**上报自定义埋点事件
  160. * @param evt 后台定义的事件名
  161. * @param data 后台定义的事件参数
  162. */
  163. function reportEvent(evt: string, data: {
  164. [key: string]: any;
  165. }): void;
  166. /**上报广告
  167. * @param adsId 广告id
  168. * @param adsState 广告状态 展示失败=0,展示成功=1,完整展示获得奖励=2
  169. * @param adsScene 广告场景目的
  170. * @param adsType 广告类型 (默认)激励视频 ='Rewarded',插屏广告='Interstitial', banner 广告 ='Banner',自定义广告 ='Custom'
  171. * @param adStartTime 开始播放时间戳ms
  172. * @returns code = 0 上报成功 err 上报错误提示
  173. */
  174. function reportSeeAds(adsId: string, adsType: ad_type, adsState: ad_state, adsScene: string, adStartTime: number): Promise<{
  175. code: number;
  176. err?: string;
  177. data?: any;
  178. }>;
  179. /**
  180. * @description 上传游戏远程存储数据
  181. * @param key 要保存的key
  182. * @param save_data 游戏数据
  183. * @returns code 错误码 errMsg 错误信息
  184. */
  185. function saveGameData(key: string, save_data: {
  186. [key: string]: any;
  187. }): Promise<{
  188. code: number;
  189. err?: string;
  190. data?: any;
  191. }>;
  192. /**
  193. * @description 获取游戏远程存储数据
  194. * @param key 数据key
  195. * @returns code 错误码 errMsg 错误信息 data 游戏数据
  196. */
  197. function loadGameData(key: string): Promise<{
  198. code: number;
  199. err?: string;
  200. data?: any;
  201. }>;
  202. /**
  203. * @description 更改用户名称头像等信息
  204. * @param nickName 名称
  205. * @param avatar 头像
  206. */
  207. function changeUserData(nickName?: string, avatar?: string): Promise<{
  208. code: number;
  209. err?: string;
  210. data?: any;
  211. }>;
  212. /**
  213. * @description 上传排行榜数据
  214. * @param rankField 排行榜类型标识
  215. * @param rankValue 分数(如果分数和缓存中的数据一致将不上传)
  216. * @param update 更新周期(不同周期为不同的排行榜) 1永久, 2每日,3每星期,4每月
  217. * @param valueType 数值类 0覆盖(默认) 1:累加
  218. * @param extend 扩展数据(非必须)
  219. */
  220. function saveRankData(rankField: string, rankValue: number, update?: chsdk.updateType, valueType?: 0 | 1, extend?: {
  221. [key: string]: any;
  222. }): Promise<{
  223. code: number;
  224. err?: string;
  225. data?: any;
  226. }>;
  227. /**
  228. * @description 获取排行榜信息
  229. * @param rankField 排行榜类型标识
  230. * @param update 更新周期(不同周期为不同的排行榜) 1永久, 2每日,3每星期,4每月
  231. * @param count 拉取个数
  232. * @param isOwn 是否拉取自己的排行 默认为false
  233. * @param cache 默认为true,1分钟内优先从缓存中拿排行数据,否则请求服务器
  234. * @returns data:{errCode 错误码 errMsg 错误信息 data 排行榜数据(list) own 自己的排名}
  235. */
  236. function loadRankData(rankField: string, update?: updateType, count?: number, isOwn?: boolean, cache?: boolean): Promise<{
  237. code: number;
  238. err?: string;
  239. data?: {
  240. list?: {
  241. head: string;
  242. nickName: string;
  243. rank: number;
  244. score: number;
  245. userId: number;
  246. [key: string]: any;
  247. }[];
  248. own?: {
  249. head: string;
  250. nickName: string;
  251. rank: number;
  252. score: number;
  253. userId: number;
  254. [key: string]: any;
  255. };
  256. };
  257. }>;
  258. /**
  259. * @description 上传地区排行榜数据
  260. * @param rankField 排行榜类型标识
  261. * @param rankValue 分数(如果分数和缓存中的数据一致将不上传)
  262. * @param update 更新周期(不同周期为不同的排行榜) 1永久, 2每日,3每星期,4每月
  263. * @param extend 扩展数据(非必须)
  264. */
  265. function saveProvinceRankData(rankField: string, rankValue: number, update?: updateType, extend?: {
  266. [key: string]: any;
  267. }): Promise<{
  268. code: number;
  269. err?: string;
  270. data?: any;
  271. }>;
  272. /**
  273. * @description 获取具体某地区排行榜信息
  274. * @param hid 省份代码
  275. * @param rankField 排行榜类型标识
  276. * @param update 更新周期(不同周期为不同的排行榜) 1永久, 2每日,3每星期,4每月
  277. * @param count 拉取个数
  278. * @param isOwn 是否显示自己的排行 默认为false不显示
  279. * @param cache 默认为true,1分钟内优先从缓存中拿排行数据,否则请求服务器
  280. * @returns data:{errCode 错误码 errMsg 错误信息 data 排行榜数据数组}
  281. */
  282. function loadProvinceRankData(hid: number, rankField: string, update?: updateType, count?: number, isOwn?: boolean, cache?: boolean): Promise<{
  283. code: number;
  284. err?: string;
  285. data?: {
  286. list?: {
  287. head: string;
  288. nickName: string;
  289. rank: number;
  290. score: number;
  291. userId: number;
  292. [key: string]: any;
  293. }[];
  294. own?: {
  295. head: string;
  296. nickName: string;
  297. rank: number;
  298. score: number;
  299. userId: number;
  300. [key: string]: any;
  301. };
  302. };
  303. }>;
  304. /**
  305. * @description 获取全国省份地区排行榜信息
  306. * @param rankField 排行榜类型
  307. * @param cache 默认为true,1分钟内优先从缓存中拿排行数据,否则请求服务器
  308. * @returns data:{errCode 错误码 errMsg 错误信息 data 排行榜数据数组{hid 省份代码,province省份名...}}
  309. */
  310. function loadProvinceRankInfo(rankField: string, cache?: boolean): Promise<{
  311. code: number;
  312. err?: string;
  313. data?: {
  314. hid: number;
  315. province: string;
  316. rank: number;
  317. score: number;
  318. }[];
  319. }>;
  320. /**玩家改变玩家默认省份
  321. * @param hid 省份代码
  322. * @returns errCode 错误码 errMsg 错误信息 time服务器时间戳(秒)
  323. */
  324. function setUserLocation(hid: number): Promise<{
  325. code: number;
  326. err?: string;
  327. data?: number;
  328. }>;
  329. /**获取服务器时间戳(秒)
  330. * @returns errCode 错误码 errMsg 错误信息 time服务器时间戳(秒)
  331. */
  332. function getServerTime(): Promise<{
  333. code: number;
  334. err?: string;
  335. time?: number;
  336. }>;
  337. /**获取城市代码对应地名 */
  338. function provinceCode2Name(hid: number): string;
  339. /**获取所有城市代码名字*/
  340. function getAllProvince(): [number, string][];
  341. }