SdkMgr.ts 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. import { sys ,Node} from "cc";
  2. import BaseSdk from "./BaseSdk";
  3. import SdkInterface, { MgrScope } from "./SdkInterface";
  4. import WxSdk from "./WxSdk";
  5. import TTSdk from "./TTSdk";
  6. import Instance from "../../core_tgx/util/Instance";
  7. export enum SDK_TYPE {
  8. PC = 0, //PC
  9. WX_DEBUG, //微信测试
  10. TT,//抖音
  11. }
  12. export class SdkMgr {
  13. public static getInstance(param?): SdkMgr{
  14. return Instance.get(SdkMgr,param);
  15. }
  16. private _sdkObj: SdkInterface;
  17. public constructor(sdkType?:SDK_TYPE ) {
  18. if(!sdkType &&sdkType != 0){
  19. if(sys.platform===sys.Platform.WECHAT_GAME){
  20. sdkType=SDK_TYPE.WX_DEBUG;
  21. }else if(sys.platform===sys.Platform.BYTEDANCE_MINI_GAME){
  22. sdkType=SDK_TYPE.TT;
  23. }else{
  24. sdkType=SDK_TYPE.PC;
  25. }
  26. }
  27. switch (sdkType) {
  28. case SDK_TYPE.WX_DEBUG: //微信debug
  29. this._sdkObj = new WxSdk();
  30. break;
  31. case SDK_TYPE.TT: //微信debug
  32. this._sdkObj = new TTSdk();
  33. break;
  34. default: //pc
  35. this._sdkObj = new BaseSdk();
  36. break;
  37. }
  38. }
  39. get sdkObj():SdkInterface{
  40. return this._sdkObj
  41. }
  42. /**
  43. * 初始化
  44. * @param callback 初始化成功后回调
  45. * @param target 监听对象
  46. */
  47. // public init(callback: Function=null, target: Object=null): void {
  48. // console.log("SdkMgr init");
  49. // this.sdkObj.init(callback, target);
  50. // }
  51. /**
  52. * 登录
  53. * @param callback 登录成功后回调
  54. * @param target 监听对象
  55. */
  56. // public login(callback: Function, target: Object): void {
  57. // console.log("SdkMgr login");
  58. // this.sdkObj.login(callback, target);
  59. // }
  60. /**
  61. * 登出
  62. */
  63. // public logout(): void {
  64. // console.log("SdkMgr logout");
  65. // this.sdkObj.logout();
  66. // }
  67. /**
  68. * 退出
  69. */
  70. // public exit(): void {
  71. // console.log("SdkMgr exit");
  72. // this.sdkObj.exit();
  73. // }
  74. /**
  75. * 切换账号
  76. */
  77. // public switchLogin(): void {
  78. // console.log("SdkMgr switchLogin");
  79. // this.sdkObj.switchLogin();
  80. // }
  81. /**
  82. * 数据上报
  83. * @param param 参数
  84. */
  85. public report(...param: any[]): void {
  86. console.log("SdkMgr report");
  87. this.sdkObj.report(param);
  88. }
  89. /**
  90. * 数据上报
  91. * @param param 参数
  92. */
  93. public pay(...param: any[]): void {
  94. console.log("SdkMgr pay");
  95. this.sdkObj.pay(param);
  96. }
  97. public setOpenScore(score:number):void{
  98. this.sdkObj.setOpenScore(score);
  99. }
  100. public getOpenRank():void{
  101. this.sdkObj.getOpenRank();
  102. }
  103. /**激励广告*/
  104. public playRewardAd(callback: Function, target?: any,scene?:any): void {
  105. // 看广告是不录屏
  106. this.sdkObj.recorderPause();
  107. this.sdkObj.showLoading()
  108. let _callback = (success)=>{
  109. this.sdkObj.recorderResume();
  110. callback.call(target,success);
  111. // 如果看广告成功需要发送消息
  112. // if(success){
  113. // this.sendAnalytics({event_type:AnalyticsType.lt_roi})
  114. // this.sendAnalytics({event_type:AnalyticsType.micro_game_ltv})
  115. // }
  116. }
  117. chsdk.playRewardAd(scene).then(success => {
  118. if (success) {
  119. _callback(success)
  120. }
  121. this.sdkObj.hideLoading()
  122. })
  123. }
  124. /**
  125. * 主动拉起转发(小程序)
  126. */
  127. shareAppMessage(title: string = "", imageUrlId: string = "", imageUrl: string = "", message:string=""): void {
  128. // this.sdkObj.shareAppMessage(title, imageUrlId, imageUrl, query, shareCallback);
  129. chsdk.shareAppMessage(title, imageUrlId, imageUrl, message)
  130. }
  131. /**开始录屏*/
  132. recorderStart(duration:number=30):void{
  133. try {
  134. this.sdkObj.recorderStart(duration);
  135. } catch (error) {
  136. }
  137. }
  138. /**结束录屏*/
  139. recorderStop():void{
  140. this.sdkObj.recorderStop();
  141. }
  142. /**分享录屏*/
  143. public shareRecord(title: string="" ,desc:string="",path:string="",topics:string[]=[]):void{
  144. this.sdkObj.shareRecord(title,desc,path,topics);
  145. }
  146. /**进入侧边栏 */
  147. public goToSidebar():void{
  148. this.sdkObj.goToSidebar();
  149. }
  150. /**是否有侧边栏功能 */
  151. public checkHasSidebar():boolean{
  152. return this.sdkObj.checkHasSidebar();
  153. }
  154. /**是否从侧边栏进入*/
  155. public checkFromSidebar():boolean{
  156. return this.sdkObj.checkFromSidebar();
  157. }
  158. vibrateShort(param: any) {
  159. return this.sdkObj.vibrateShort(param);
  160. }
  161. /**继续录屏 */
  162. recorderResume(){
  163. return this.sdkObj.recorderResume();
  164. }
  165. /**暂停录屏 */
  166. recorderPause(){
  167. return this.sdkObj.recorderPause();
  168. }
  169. /**录屏状态 */
  170. get recordState(){
  171. return this.sdkObj.recordState
  172. }
  173. // 授权
  174. authorize(str?,cb?){
  175. str = this._sdkObj.getScope(str)||str
  176. return this.sdkObj.authorize(str,cb)
  177. }
  178. getUserInfo(cb, node?: Node,btnCb?){
  179. this.sdkObj.getUserInfo(cb, node,btnCb)
  180. }
  181. // 菜单
  182. getMenuButtonBoundingClientRect(){
  183. return this.sdkObj.getMenuButtonBoundingClientRect()
  184. }
  185. // 发消息
  186. posMessge(messge?){
  187. return this.sdkObj.posMessge(messge)
  188. }
  189. get scope() {
  190. return MgrScope
  191. }
  192. showRankList(param){
  193. //moba游戏自动生成段位榜
  194. return this.sdkObj.showRankList(param)
  195. }
  196. setImRankData(param){
  197. return this.sdkObj.setImRankData(param)
  198. }
  199. // sendAnalytics(param:{event_type:AnalyticsType,outer_event_id?:number}){
  200. // if(sys.platform!=sys.Platform.BYTEDANCE_MINI_GAME) return;
  201. // return (this.sdkObj as TTSdk).sendAnalytics(param)
  202. // }
  203. awemeUserProfile(callback: Function){
  204. if(sys.platform!=sys.Platform.BYTEDANCE_MINI_GAME) return;
  205. return (this.sdkObj as TTSdk).awemeUserProfile(callback)
  206. }
  207. checkFollowAwemeState(callback: Function){
  208. if(sys.platform!=sys.Platform.BYTEDANCE_MINI_GAME) return;
  209. return (this.sdkObj as TTSdk).checkFollowAwemeState(callback)
  210. }
  211. openSetting(res:any){
  212. // if(sys.platform!=sys.Platform.BYTEDANCE_MINI_GAME) return;
  213. return this.sdkObj.openSetting(res)
  214. }
  215. getWindowInfo():{safeArea?:any}{
  216. return this.sdkObj.getWindowInfo()
  217. }
  218. }
  219. export enum AnalyticsType{
  220. active = "active",
  221. next_day_open = "next_day_open",
  222. lt_roi = "lt_roi",
  223. ug_roi ="ug_roi",
  224. in_app_retention_3d = "in_app_retention_3d",
  225. in_app_retention_2d ="in_app_retention_2d",
  226. micro_game_ltv ="micro_game_ltv",
  227. game_addiction ="game_addiction"
  228. }