chsdk.d.ts 9.1 KB

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