BasePlatform.ts 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  1. import { _decorator, Component, Node, sys } from 'cc';
  2. import { IPlatform } from '../IPlatform';
  3. const { ccclass, property } = _decorator;
  4. @ccclass('BasePlatform')
  5. export class BasePlatform implements IPlatform{
  6. public openID:string;
  7. currentVersion:string="1.0.2";
  8. /**
  9. * 后台开关
  10. */
  11. config:any;
  12. /**
  13. * 广告与互推
  14. */
  15. adConfig:any;
  16. constructor()
  17. {
  18. }
  19. /**
  20. * 登录
  21. * @param success 成功
  22. * @param failure 失败
  23. */
  24. login(success:Function,failure:Function):void{
  25. this.__loginSuccess();
  26. // zs.sdk.login((openID)=>{
  27. // this.openID=openID;
  28. // console.log("zs login success:"+openID);
  29. // //因为指色会去调用微信的登录和授权,所以再这里只调用指色的API
  30. // zs.sdk.loadCfg((config)=>{
  31. // this.config=config;
  32. // console.log("zs config:",config);
  33. // zs.sdk.loadAd((adConfig)=>{
  34. // this.adConfig=adConfig;
  35. // console.log("zs adConfig:",adConfig);
  36. // //调用钩子
  37. // this.__loginSuccess();
  38. // //登录回调
  39. // success({userID:this.openID});
  40. // });
  41. // },()=>{
  42. // console.error("指色后台配置拉取失败!");
  43. // failure();
  44. // });
  45. // },(error)=>{
  46. // console.log("zs login error:"+error);
  47. // })
  48. }
  49. /**
  50. * 登录成功钩子,子类重写来做一些其他事情
  51. */
  52. protected __loginSuccess():void{
  53. }
  54. /**
  55. * 跳转
  56. * @param data
  57. * @param success
  58. * @param failure
  59. */
  60. navigate2Mini(data:any,success?:Function,failure?:Function):void{
  61. }
  62. /**
  63. * 分享
  64. * @param data
  65. * @param success
  66. * @param failure
  67. */
  68. shareMessage(data:any,success?:Function,failure?:Function):void{
  69. }
  70. /**
  71. * 被动分享
  72. */
  73. onShareAppMessage():void{
  74. }
  75. /**
  76. * 显示Banner
  77. * @param data
  78. */
  79. showBanner(data:any):void{
  80. }
  81. /**
  82. * 隐藏Banner
  83. */
  84. hideBanner():void{
  85. }
  86. /**
  87. * 显示激励广告
  88. * @param success
  89. * @param failure
  90. */
  91. showRewardedVideo(success?:Function,failure?:Function):void{
  92. }
  93. /**
  94. * 显示插屏广告
  95. */
  96. showInsertAd(success?:Function,failure?:Function):void{
  97. }
  98. /**
  99. * 显示原生广告
  100. */
  101. showNativeAd(success?:Function,failure?:Function):void{
  102. }
  103. /**
  104. * 打点
  105. * @param eventName
  106. * @param data
  107. */
  108. sendEvent(eventName:string,data?:any):void{
  109. }
  110. /**
  111. * 设置加载进度
  112. * @param progress
  113. */
  114. setLoadingProgress(progress:number):void{
  115. }
  116. /**
  117. * 加载完成
  118. * @param completeHandler
  119. */
  120. loadingComplete(completeHandler?:Function):void{
  121. if(completeHandler){
  122. completeHandler();
  123. }
  124. }
  125. /**
  126. * 游戏互推
  127. * @param num
  128. */
  129. getRandomPageAd(num: number): any[] {
  130. return [];
  131. }
  132. protected __getRandomAd(num: number, list: any[]): any[] {
  133. if (num > list.length) {
  134. num = list.length;
  135. }
  136. let adlist: any[] = list.slice(0);
  137. let result: any[] = [];
  138. let index: number;
  139. let adData: any;
  140. while (result.length < num) {
  141. index = Math.floor(Math.random() * adlist.length);
  142. adData = adlist[index];
  143. if (result.indexOf(adData) < 0) {
  144. result.push(adData);
  145. }
  146. }
  147. return result;
  148. }
  149. /**
  150. * 是否显示互导
  151. */
  152. get canJump():boolean{
  153. return this.zs_jump_switch==1?true:false;
  154. }
  155. /**
  156. * 配置的版本号与当前版本一致时,则下方开关对当前版本生效;配置的版本号和当前版本不一致时,则当前版本默认所有开关均关闭。
  157. */
  158. get zs_version():string{
  159. return this.config.zs_version;
  160. }
  161. /**
  162. * 配置为0时,则不展示接入此开关的导出;配置为1时,接入此开关的导出位置正常展示
  163. */
  164. get zs_jump_switch():number{
  165. if(this.currentVersion!=this.config.zs_version){
  166. return 0;
  167. }
  168. return this.config.zs_jump_switch;
  169. }
  170. /**
  171. * 配置为0时,则文字直接展示在上移后的位置/文字不延时;配置为1时,则文字上移/延时
  172. */
  173. get zs_switch():number{
  174. if(this.currentVersion!=this.config.zs_version){
  175. return 0;
  176. }
  177. return this.config.zs_switch;
  178. }
  179. /**
  180. * 配置为0时,则不展示接入此开关的导出;配置为1时,接入此开关的导出位置正常展示
  181. */
  182. get zs_full_screen_jump():number{
  183. if(this.currentVersion!=this.config.zs_version){
  184. return 0;
  185. }
  186. return this.config.zs_full_screen_jump;
  187. }
  188. /**
  189. * 按钮延迟时间
  190. */
  191. get zs_button_delay_time():number{
  192. if(this.currentVersion!=this.config.zs_version){
  193. return 0;
  194. }
  195. return this.config.zs_button_delay_time;
  196. }
  197. /**
  198. * 配置为0时,下方按钮为“点击跳过”,点击此按钮可直接关闭当前插屏式原生;配置为1时,下方按钮文字调用官方接口,点击此按钮跳转广告。(无论开关什么状态,点击插屏式原生左上角的关闭按钮均可关闭当前插屏式原生,点击广告图片均可以跳转至广告,示例发群里)
  199. */
  200. get zs_native_click_switch():number{
  201. if(this.currentVersion!=this.config.zs_version){
  202. return 0;
  203. }
  204. return this.config.zs_native_click_switch;
  205. }
  206. get zs_banner_show_time():number{
  207. return this.config.zs_banner_show_time;
  208. }
  209. /**
  210. * 延迟时间
  211. */
  212. get delayTime():number{
  213. return 2000;
  214. }
  215. /**
  216. * 是否显示原生和插屏广告
  217. */
  218. get showNativa():number{
  219. if(this.currentVersion!=this.config.zs_version){
  220. return 0;
  221. }
  222. return 1;
  223. }
  224. /**
  225. * 可显示次数
  226. */
  227. get zs_click_award_num():number{
  228. if(this.currentVersion!=this.config.zs_version){
  229. return 0;
  230. }
  231. let value:number=Number(this.config.zs_click_award_num);
  232. if(isNaN(value)){
  233. return 0;
  234. }else{
  235. if(value!=0){
  236. return value;
  237. }
  238. }
  239. return 0;
  240. }
  241. /**
  242. * 进度条上涨百分比
  243. */
  244. get zs_click_award_add():number{
  245. return this.config.zs_click_award_add;
  246. }
  247. /**
  248. * 进度条不点下降百分比
  249. */
  250. get zs_click_award_back():number{
  251. return this.config.zs_click_award_back;
  252. }
  253. /**
  254. * 砸金蛋区间
  255. */
  256. get zs_click_award_percent():number[]{
  257. let percent:number[] = [];
  258. let str:string = this.config.zs_click_award_percent;
  259. str = str.replace("[", "");
  260. str = str.replace("]", "");
  261. let items:string[] = str.split(",");
  262. for(let i:number = 0; i < items.length; i++){
  263. percent.push(Number(items[i]));
  264. }
  265. return percent;
  266. }
  267. }