Moyu.d.ts 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980
  1. /*
  2. ***********************************************************************************
  3. * 功能:moyusdk
  4. * 版本: v1.3
  5. * 备注:更新日志
  6. 2021.10.11: 初版功能发布
  7. 2021.10.15: 更新音频基础功能
  8. 2022.1.5: 增加实名认证
  9. 2022.1.12 增加防沉迷
  10. ***********************************************************************************
  11. */
  12. declare enum MoyuPlat
  13. {
  14. web=0, //h5 网页
  15. tt=1, //头条
  16. op=2, //oppo
  17. vv=3, //vivo
  18. mz=4, //魅族
  19. wx=5, //微信
  20. qq=6, //qq
  21. f399=7, //4399h5
  22. ks=8, //快手
  23. hw=9, //华为
  24. xm=10, //小米rpk
  25. csj=11, //穿山甲(官包)
  26. mmy=12, //摸摸鱼
  27. xmApk=13, //小米apk
  28. vvApk=14, //vvapk
  29. ios=15, //IOS平台
  30. t33=16, //233
  31. hwkb=17, //好玩快爆
  32. opApk=18, //oppoAPK
  33. hhw=19, //猴好玩
  34. f399Apk=20, //4399APK
  35. ttApk=21, //头条APK
  36. a233=22, //233买量
  37. }
  38. declare enum MoyuRankType
  39. {
  40. total='total', //总榜
  41. month='month', //月榜
  42. week='week', //周榜
  43. day='day' //日榜
  44. }
  45. declare class MoyuNative
  46. {
  47. id:any; //广告ID 一般都是string
  48. title:string; //广告标题文本
  49. desc:string; //描述文本
  50. btnTxt:string; //按钮文本
  51. icon:string; //icon url 当前广告可能没有
  52. image:string; //image url
  53. }
  54. declare class MoyuCfg
  55. {
  56. myId:number; //摸鱼ID
  57. myKey:string; //摸鱼KEY
  58. plat:MoyuPlat; //平台
  59. version:number; //版本号,默认0
  60. ads:MoyuAds; //广告参数
  61. }
  62. declare class MoyuAds
  63. {
  64. //头条
  65. ttVideoId:string;
  66. ttBannerId:string;
  67. ttInsertId:string;
  68. //oppo
  69. opVideoId:string;
  70. opBannerId:string;
  71. opNativeId:string;
  72. //vivo
  73. vvVideoId:string;
  74. vvBannerId:string;
  75. vvInsertId:string;
  76. vvNativeId:string;
  77. //魅族
  78. mzVideoId:string;
  79. mzBannerId:string;
  80. mzInsertId:string;
  81. //微信
  82. wxVideoId:string;
  83. wxBannerId:string;
  84. wxInsertId:string;
  85. //qq
  86. qqVideoId:string;
  87. qqBannerId:string;
  88. qqInsertId:string;
  89. qqBoxId:string;
  90. qqBlockId:string;
  91. //华为
  92. hwVideoId:string;
  93. hwBannerId:string;
  94. hwInsertId:string;
  95. //快手
  96. ksVideoId:string;
  97. ksBannerId:string;
  98. ksInsertId:string;
  99. }
  100. interface MoyuUser
  101. {
  102. /**
  103. * 是否授权用户
  104. */
  105. isAuth:boolean;
  106. /**
  107. * 实名
  108. */
  109. realName:string;
  110. /**
  111. * 实名码(身份证号)
  112. */
  113. realCode:string;
  114. /**
  115. * 本地用户唯一ID
  116. */
  117. userId:string;
  118. /**
  119. * 授权用户唯一ID
  120. */
  121. openId:string;
  122. /**
  123. * 昵称
  124. */
  125. nickName:string;
  126. /**
  127. * 头像url
  128. */
  129. headIcon:string;
  130. /**
  131. * 用户性别,0: 未知;1:男性;2:女性
  132. */
  133. gender:number;
  134. /**
  135. * 用户所在城市(可能取不到)
  136. */
  137. city:string;
  138. /**
  139. * 用户年龄
  140. */
  141. age:number;
  142. /**
  143. * 用户创建时间(第一次登陆时间)
  144. * 返回的一个时间戳time,可通过getDate(time)来获取日期格式
  145. */
  146. createTime:number; //创建时间
  147. /**
  148. * 用户登陆次数(进入游戏次数)
  149. */
  150. loginCount:number;
  151. /**
  152. * 用户视频广告统计,数组
  153. * 第一个数为成功次数,第二个数为未看完次数
  154. */
  155. videoCount:number[];
  156. }
  157. declare class Moyu
  158. {
  159. /**
  160. * 摸鱼SDK初始化
  161. * let cfg=new MoyuCfg();
  162. cfg.myId=110;
  163. cfg.myKey='abcdefg1234567';
  164. cfg.plat=MoyuPlat.tt;
  165. cfg.version=0;
  166. cfg.ads.ttVideoId='xxx';
  167. MoyuSdk.Inst.init(cfg,this,()=>{
  168. //....
  169. },true);
  170. * myId 摸鱼分配的id
  171. * mykey 摸鱼密钥
  172. * plat 当前平台 MoyuPlat
  173. * version 自定义线上版本号(注意是线上版本号),为了区分当前审核与线上版本
  174. * ads 广告ID组配置,
  175. *
  176. * @param cfg 信息配置
  177. * @param caller 执行域
  178. * @param call sdk初始化完成回调,在一定要SDK返回信息后进行的内容可以在回调后做
  179. * @param debug 是否开启调试信息,上线后建议关闭false,默认关闭
  180. *
  181. */
  182. static init(cfg?:any,caller?:any,call?:Function,debug?:boolean);
  183. /**
  184. * 初始化app平台应用(一般是在需要传递参数来初始化使用)
  185. * @param msg 参数
  186. */
  187. static initApp(msg?:string)
  188. /**
  189. * Targo买量统计(原生APP)
  190. * @param appid Targo的appid
  191. * @param key Targo的key
  192. */
  193. static initTargoApp(appid:string,key:string)
  194. /**
  195. * 退出(关闭),部分平台无效
  196. */
  197. static exit()
  198. /**
  199. * 防沉迷初始化(实名成年账号激活也无效)
  200. * @param active true=激活
  201. */
  202. static initFCM(active:boolean)
  203. /**
  204. * 可玩游戏时间,防沉迷账号返回对应可玩时间,成年账号返回9999。
  205. * 返回0则表示进入防沉迷,不能再玩。
  206. * 22——8点返回0;
  207. */
  208. static get gameTime():number
  209. /**
  210. * 是否已实名
  211. * true表示已实名认证过了
  212. */
  213. static get isRealName()
  214. /**
  215. * 是否需要进行实名验证(不需要的平台返回false,认证过的返回true)
  216. */
  217. static get needRealName()
  218. /**
  219. * 实名认证
  220. * @param name 姓名
  221. * @param code 身份证号码
  222. * @param call 认证回调
  223. * authenticate('xx','xxx',(res)=>{
  224. * res==true表示认证成功
  225. * })
  226. */
  227. static authenticate(name:string,code:string,call:Function)
  228. /**
  229. * 是否需要显示用户协议
  230. */
  231. static get hasAgree()
  232. /**
  233. * 是否审核中...
  234. */
  235. static get isLegal()
  236. static set isLegal(legal:boolean)
  237. /**
  238. * 是否屏蔽区域...
  239. */
  240. static get isMasked()
  241. /**
  242. * 用户协议是否同意
  243. * @param agree true表示同意
  244. */
  245. static userAgree(agree:boolean)
  246. /**
  247. * 加载分包资源,game.json的分包配置
  248. * @param sub 分包名
  249. * @param update 分包下载时进度更新
  250. *
  251. * Moyu.loadSubRes("sub",(pro)=>{
  252. * console.log(pro);
  253. * }).then(()=>{
  254. console.log( "load done");
  255. });
  256. */
  257. static loadSubRes(sub:string,update?:Function)
  258. /**
  259. * 用户信息初始化
  260. * @param caller 执行域 this
  261. * @param call 回调
  262. * @param force 强力授权(如抖音授权被拒绝后,再授权则不会发起,force=true则会弹出权限设置页面,一般是用户主动点击授权来使用,未有相关功能的平台调用无效.)
  263. * 不获取对应信息则不传,传入则表示需要。(主要是获取账号唯一不变的openid)
  264. * oppo获取openid不需要;
  265. * @param key 对应平台应用申请时分配的 rpk平台一般叫appKey ,微信字节小游戏一般叫appid
  266. * @param secret 对应平台后台查看,如重新查看变化后需要更新。
  267. * @param pkgName 对应包名(RPK等平台使用),没有不填写
  268. *
  269. * 回调中返回用户信息MoyuUser
  270. */
  271. static initUser(caller:any,call:Function,force?:boolean,key?:string,secret?:string,pkgName?:string)
  272. /**
  273. * 返回用户信息MoyuUser;
  274. * 要拉取授权信息,请先调用initUser();
  275. * 包含的数据见MoyuUser;
  276. */
  277. static getUserInfo():MoyuUser
  278. /**
  279. * ZH:更新用户信息登錄之後更新随机名字
  280. */
  281. static updateUserInfo(loginUserName: string)
  282. /**
  283. * 创建微信授权按钮,返回按钮对象btn,根据页面显隐做对应调整:btn.show();btn.hide();
  284. * 非微信平台或者不需要在创建时返回null;
  285. * @param posx 屏幕位置x的百分比,如0.5表示屏幕中心
  286. * @param posy 屏幕位置y的百分比,如0.5表示屏幕中心
  287. * @param width 宽度
  288. * @param height 高度
  289. * @param imgUrl 图片地址 res/img/xx.png;
  290. * @param call 授权成功回调
  291. * 按钮锚点已设在正中心,方便计算适配位置。
  292. */
  293. static createWXUserBtn(posx,posy,width,height,imgUrl,call)
  294. /**
  295. * 获取平台系统信息
  296. */
  297. static getSystemInfo()
  298. /**
  299. * 设置改变时
  300. * @param isAudio 是否允许播放声音 true=允许
  301. * @param isVt 是否开启震动 true=震动
  302. */
  303. static onSetting(isAudio:boolean,isVt:boolean)
  304. /**
  305. * 游戏开始时(游戏核心玩法开始),便于打点统计
  306. * @param value 游戏进度,第几个or第几次==
  307. */
  308. static onGameStart(value:number)
  309. /**
  310. * 游戏结束时
  311. * @param value 游戏进度,第几个or第几次==
  312. * @param result 结果:胜利=1;失败=2,默认其他0;
  313. */
  314. static onGameEnd(value:number,result?:number)
  315. /**
  316. * 保存数据到服务器
  317. * @param data 数据,json
  318. * @param key 存储key,默认使用openid(请先保证获取到openid,没有存储出错),或者自定义一个唯一ID
  319. */
  320. static saveServerData(data:{},key?:string)
  321. /**
  322. * 获取服务器数据
  323. * @param call 回调
  324. * @param caller 执行域
  325. * @param key 保存数据的key,默认使用openid(请先保证已取到openid)
  326. */
  327. static getServerData(call:Function,caller?,key?:string)
  328. /**
  329. * 清楚本地SDK数据
  330. */
  331. static clearData()
  332. /**
  333. * 获取平台的屏幕尺寸(有别于引擎返回的)
  334. */
  335. static getPlatSize()
  336. /**
  337. * 显示更多游戏,字节平台请确保game.json里有配置
  338. * 4399h5必须要有
  339. */
  340. static showMoreGame()
  341. /**
  342. * 获取摸鱼更多游戏推荐列表(抖音、微信)
  343. * @param caller 执行域
  344. * @param call 回调
  345. * getGameList(this,(list)=>{})
  346. * list 数据结构
  347. myId:string, //摸鱼id
  348. type:number, //类别,控制其显示位置,没位置要求可忽略
  349. name:string, //游戏名称
  350. icon:string, //游戏图标url
  351. banner:string, //游戏banner图url,需要banner推荐的使用,没有则不要使用banner推荐
  352. appId:string, //微信APPID, 微信跳转APP使用
  353. videoId:string, //抖音视频ID, 抖音跳转视频使用(通过跳转到对应视频来进入对应游戏)
  354. launchNum:number,//玩家次数,如 3542人在玩;1.2w人在玩(大于1w请做数字转换显示)
  355. */
  356. static getGameList(caller,call)
  357. /**
  358. * 上传排行榜数据(需要摸鱼先分配一个id)
  359. * @param rankId 排行榜id
  360. * @param rankScore 排行榜
  361. * @param fresh 刷新(替换已上传的数据,不比较),默认false(比之前的值小则不会上传)
  362. * @param force 强制上传(默认是false未授权用户数据不上传)
  363. * @param data 自定义数据,用户数据默认已包含,该数据是排行榜需要的额外数据。
  364. * @param dataId 唯一ID,单数据依据(默认会使用用户userId)
  365. */
  366. static upRankData(rankId:number,rankScore:number,fresh?:boolean,force?:boolean,data?:{},dataId?:string)
  367. /**
  368. * 获取排行榜数据
  369. * @param data 排行拉取数据标识
  370. * @param caller 执行域
  371. * @param call 回调
  372. * @param fresh 刷新(默认false),true表示重新拉取数据(不必每次都刷新)
  373. *
  374. * 排行榜top50数据
  375. * let data={
  376. rankId:10100, //排行榜id
  377. type:MoyuRankType.total, //排行榜类别
  378. page:1, //拉取第几页
  379. pageSize:50, //一页数量
  380. }
  381. */
  382. static getRankList(data:{},caller:any,call:Function,fresh?:boolean)
  383. /**
  384. * 创建一个视频广告,若不需要自定义设置,可在moyu初始化配置广告ID直接初始化
  385. * @param aid 广告ID
  386. */
  387. public initVideoAd(aid:string)
  388. /**
  389. * 播放一个视频广告
  390. * @param scusess 成功回调
  391. * @param adtype 广告分类,不同位置
  392. * @param caller 执行域 this
  393. * @param fail 失败回调,可以通过监控onMoyuTip:20101来统一获取视频未播放完整提示
  394. */
  395. static showVideoAd(scusess?:Function,adtype?:number,caller?,fail?:Function)
  396. /**
  397. * 创建一个banner广告,若不需要自定义设置,可在moyu初始化配置广告ID直接初始化
  398. * @param aid 广告ID
  399. * @param ft 刷新时间(默认30秒)
  400. * @param posx 位置x 默认0.5
  401. * @param posy 位置y 默认1
  402. * 默认在底部中间
  403. */
  404. static initBannerAd(aid:string,ft?:number, posx?:number,posy?:number)
  405. /**
  406. * banner广告显示
  407. * @param show true显示,false隐藏
  408. */
  409. static showBannerAd(show:boolean)
  410. /**
  411. * banner广告位置
  412. *
  413. * @param posx 广告中心点在屏幕宽度的百分比,如0.5表示横向在屏幕中间
  414. * @param posy 广告中心点在屏幕高度的百分比。0在顶部,1在底部
  415. * 大部分平台都不提供改变banner大小了,目前只提供改变位置
  416. */
  417. static setBannerPos(posx:number,posy:number)
  418. /**
  419. * 初始化插屏广告
  420. * @param aid 插屏广告ID
  421. */
  422. static initInsertAd(aid)
  423. /**
  424. * 显示一个插屏广告,可延迟间隔显示
  425. * @param delay 延迟时间,毫秒
  426. * @param gap 间隔时间(在上一次插屏或视频广告后多少时间内不会播放),毫秒
  427. * @param type 插屏类型,只有一种插屏的默认不用管,APP多类型插屏传其他值,原生接入时做对应实现。
  428. */
  429. static showInsertAd(delay?:number,gap?:number,type?:string)
  430. /**
  431. * 初始化一个模版广告,如果ID相同则删除上一个
  432. * @param aid 广告ID
  433. * @param left 距离左边比值,如0.5表示横向中间开始
  434. * @param top 距离顶部比值,如0表示贴近顶部开始
  435. * @param freshTime 刷新时间,默认30秒
  436. */
  437. static initCustomAd(aid:string,left:number,top:number,freshTime?:number)
  438. /**
  439. * 根据ID控制对应的模版广告显隐
  440. * @param aid 广告id
  441. * @param show true表示显示
  442. */
  443. static showCustomAd(aid:string,show:boolean)
  444. /**
  445. * qq Block广告
  446. * @param show
  447. */
  448. static showBlock(show:boolean)
  449. /**
  450. * 盒子广告 qq
  451. */
  452. static showBox()
  453. /**
  454. * 获取一个原生广告
  455. * @param caller 执行域
  456. * @param call 回调
  457. * 回调中返回原生广告信息MoyuNative
  458. *
  459. * icon可能为空
  460. */
  461. static getNativeAd(caller:any,call:Function)
  462. /**
  463. * 原生广告上报 (ov平台)
  464. * @param type 1显示上报 2点击上报,默认2
  465. * 拉取到广告后,已默认显示上报
  466. * 一般只需要在点击时 reportNative() 即可
  467. */
  468. static reportNative(type?:number)
  469. /**
  470. * 设置分享信息,请在分享前添加
  471. * @param title 必要,分享标题(需要跟游戏主题或者名字相关联)
  472. * @param keys 关键标签(["标签1","标签2"..]),推荐添加
  473. * @param shareId 审核了的分享ID
  474. * @param imgUrl 分享的图片链接,可不添加
  475. * @param query 启动传参(如k1=v1&k2=v2),getLaunchOptions()获取启动参数
  476. */
  477. static setShareInfo(title:string,keys?:string[],shareId?:string,imgUrl?:string,query?:string)
  478. /**
  479. * 游戏分享(字节、微信、QQ、快手)。
  480. * 若是需要视频分享,可先用canShare检测是否可以视频分享。
  481. * 微信分享已没有成功失败判断,发起分享回来后都算成功。
  482. * 已正确录屏会默认视频分享,若录屏后却需要普通分享,调用Moyu.shareVideo='';清除储存的录屏。
  483. * @param call 分享回调
  484. * @param caller 执行域
  485. * @param imgUrl 分享图片的url https://xxx.xxx/x;
  486. * @param query 分享链接中带的参数,通过链接启动的人可以从getLaunchOptions获取带出的参数
  487. * 字节视频分享成功后回调可以得到视频id
  488. * shareGame((res)=>{});
  489. * res==false;表示分享失败。
  490. */
  491. static shareGame(call?:Function,caller?:any,imgUrl?:string,query?:string)
  492. /**
  493. * 检测能否进行分享,返回分类情况
  494. * 0:不能分享(平台不支持),不应显示分享相关
  495. * 1:能普通分享,不支持视频分享,不应显示视频分享相关
  496. * 2:录屏失败,不能分享
  497. * 3:录屏时间太短,不能分享
  498. * ...
  499. * >100:表示能进行视频分享。
  500. *
  501. * 2和3 要给出反馈提示:录屏时间太短,不能分享;并关闭分享(方便过审)。
  502. *
  503. * 视频分享要在recordEnd()回调后用才能保证获取视频录制情况正确
  504. */
  505. static canShare():number
  506. /**
  507. * 设置分享视频
  508. * @param path 完整路径
  509. */
  510. static set shareVideo(path:string)
  511. /**
  512. * 获取分享视频(路径)
  513. */
  514. static get shareVideo():string
  515. /**
  516. * 获取启动参数
  517. */
  518. static getLaunchOptions()
  519. /**
  520. * 添加桌面快捷方式
  521. * @param call 添加后回调
  522. * @param caller 执行域 this
  523. */
  524. static addLnk(call?:Function,caller?:any)
  525. /**
  526. * 能否进行关注
  527. * 抖音无法检查已关注 返回true
  528. * 快手返回true表示可以,false表示不能关注(已关注、平台不支持、环境不支持)
  529. * 其他平台目前没有 否是false
  530. */
  531. static get canFocus():boolean
  532. /**
  533. * 发起关注官方号
  534. * 目前有抖音与快手平台可以
  535. * @param call 关注回调,true=成功,false=失败
  536. * @param caller 执行域
  537. */
  538. static focus(call?:Function,caller?:any)
  539. /**录屏相关功能不支持平台直接无效,调用不影响 */
  540. /**
  541. * @param time 录屏时间,最大300秒,不建议大于60秒
  542. * @param clip 裁剪片段,裁剪保留最后的一个时间时段
  543. * recordGame(60,false) //表示录屏60秒
  544. * recordGame(30,true) //表示最大录屏,裁剪最后的30秒
  545. */
  546. static recordGame(time:number,clip?:boolean)
  547. /**
  548. * 暂停录屏
  549. * @param pause ture 暂停,false 恢复录屏
  550. */
  551. static recordPause(pause:boolean)
  552. /**
  553. * 录屏结束
  554. * @param caller 执行域
  555. * @param call 回调
  556. * recordEnd((path)=>{
  557. * conslog.log(path); //录屏地址
  558. * })
  559. */
  560. static recordEnd(caller,call)
  561. /**
  562. * 需求真实时间,请在获取时间前设置(因网络原因,尽量提前设置)
  563. * @param need 是否需要真实时间
  564. */
  565. static needRealTime(need?:boolean)
  566. /**
  567. * 获取当前时间戳,默认毫秒..
  568. * @param sencond 是否以秒返回
  569. */
  570. static getTime(sencond?):number
  571. /**
  572. * 获取当前日期 默认number
  573. * number:20211010
  574. * string:2021/10/10
  575. * @param time 可以传入一个时间戳返回日期格式,默认0返回当前时间
  576. * @param isNum 是否以数字方式返回
  577. */
  578. static getDate(time?:number,isNum?:boolean):number|string
  579. /**
  580. * 获取星期几
  581. */
  582. static getWeek():number
  583. /**
  584. * 获取当前第几周(这一年的)
  585. */
  586. static getWeekNum():number
  587. /**
  588. * 是否为新的一天。
  589. * 每新的一天上线后第一次取值为true,其他时间为false。
  590. * 项目里应该只有一次调用。
  591. * @param caller 执行域 this
  592. * @param call 回调 true=新的一天
  593. * Moyu.isNewDay(this,(isnew)=>{
  594. * if(isnew)console.log("新的一天");
  595. * })
  596. */
  597. static isNewDay(caller:any,call:Function)
  598. /**
  599. * 是否为新的一周
  600. * 每周一上线后第一次取值为true,其他时间为false
  601. * @param caller 执行域 this
  602. * @param call 回调 true=新的一周
  603. * 同isNewDay
  604. */
  605. static isNewWeek(caller:any,call:Function)
  606. /**
  607. * 数据打点(相关功能配置还需要后台开启)
  608. * @param key 关键key
  609. * @param data 打点数据,打点数据最多2条 如 sendDataEvent("level",{id:1,result:2});
  610. */
  611. static sendDataEvent(key:string,data?:{})
  612. /**
  613. * 发送一个POST请求
  614. * @param url url
  615. * @param data 数据
  616. * @param call 回调
  617. * senPost('hxxx.xx.x',data,()=>{})
  618. */
  619. static sendPost(url,data,call)
  620. /**
  621. * 发送一个Get请求
  622. * @param url url
  623. * @param call 回调
  624. * senGet('hxxx.xx.x',()=>{})
  625. */
  626. static sendGet(url,call)
  627. /**
  628. * 获得一个随机数(包含最小值,不包含最大值)
  629. * @param min 最小值
  630. * @param max 最大值
  631. */
  632. static getRandom(min: number, max: number): number
  633. /**
  634. * 获得一个随机字符串
  635. * @param len 字符串长度
  636. */
  637. static getRandString(len:number): string
  638. /**
  639. *
  640. * @param call
  641. * @param caller
  642. */
  643. static getLocation(call,caller?)
  644. /**
  645. * 跳转到视频播放页面(抖音才支持,字节其他平台不支持)
  646. * 刚发布的视频可能跳转不成功,需要等一会
  647. * @param vid 视频ID
  648. */
  649. static playVideo(vid)
  650. /**
  651. * 监听sdk反馈的提示信息,只注册一次
  652. * @param call 回调
  653. * @param caller 执行域
  654. * id查询MoyuDoc.ts
  655. * Moyu.setOnTipCall((id)=>{
  656. * if(id==20012)
  657. * console.log("切换到后台了");
  658. * else(id==20301)
  659. * console.log("分享失败了");
  660. * ...
  661. * },this)
  662. */
  663. static setOnTipCall(call:Function,caller?:any)
  664. /**
  665. * 是否有快捷方式(不支持平台也返回true)
  666. * true表示不应该进行创建了
  667. */
  668. static get hasShortCut()
  669. /**
  670. * 是否有阴影
  671. * true 可以显示阴影,fasle不显示(平台不支持)
  672. */
  673. static get hasShadow()
  674. /********平台音效相关接口*********/
  675. /**
  676. * 是否需要使用ogg音频(apk包都使用的ogg)
  677. */
  678. static get isNeedOgg()
  679. /**
  680. * 是否需要平台功能播放音频
  681. * 引擎音频在一些平台上会出现广告无法暂停声音等,可使用平台音频功能来播放。
  682. */
  683. static get isNeedPlatAudio()
  684. /**
  685. * 播放一个声音(同声音最多可同时存在3个)
  686. * @param path 完整路径
  687. * @param loop 是否循环
  688. */
  689. static playSound(path:string,loop?:boolean): void
  690. /**
  691. * 停止声音(相同路径的声音都会停止)
  692. * @param path 完整路径
  693. */
  694. static stopSound(path:string)
  695. /**
  696. * 播放背景音乐(只有一个)
  697. * @param path 路径
  698. */
  699. static playMusic(path:string)
  700. /**
  701. * 停止播放背景音乐
  702. */
  703. static stopMusic()
  704. /**
  705. * 背景音暂停
  706. * @param pause 暂停=true false=恢复
  707. */
  708. static pauseMusic(pause:boolean)
  709. /**
  710. * 播放一个声音并在结束时回调
  711. * @param caller 执行域
  712. * @param call 回调
  713. * @param path 路径
  714. */
  715. static playAudioWithEnd(caller:any,call:Function,path:string)
  716. /**
  717. * 静音后发起的声音播放都无效
  718. * @param mute 静音
  719. */
  720. static mute(mute:boolean): void
  721. /**
  722. * 音频扩展
  723. * 返回一个平台创建的音频实例
  724. * 自行控制
  725. */
  726. static createAudio():any
  727. /**
  728. * 获取平台自定义数据,为空可能是没有配置或没拉取到
  729. */
  730. static get platData():any
  731. /**
  732. * 获取平台运营配置,为空可能是没有配置或没拉取到
  733. */
  734. static get platConfig():any
  735. /************平台判断***********/
  736. /**
  737. * 该平台是否有用户信息
  738. */
  739. static get hasUserInfo()
  740. /**
  741. * 是否空平台(不在对应平台上也是)
  742. */
  743. static get isVoidPlat()
  744. /**
  745. * 当前平台
  746. */
  747. static get platType()
  748. /**
  749. * 是否该平台
  750. * @param plat 平台
  751. */
  752. static isPlat(plat)
  753. /**
  754. * 是否微信平台
  755. */
  756. static get isWx()
  757. /**
  758. * 是否qq平台
  759. */
  760. static get isQq()
  761. /**
  762. * 是否web平台
  763. */
  764. static get isWeb()
  765. /**
  766. * 是否小米APK包
  767. */
  768. static get isXMApk()
  769. /**
  770. * 是否4399h5小游戏
  771. */
  772. static get isF399()
  773. /**
  774. * 是否vivo平台
  775. */
  776. static get isVivo()
  777. /**
  778. * 是否oppo平台
  779. */
  780. static get isOppo()
  781. /**
  782. * 是否头条平台(包含抖音)
  783. */
  784. static get isTT()
  785. static get isTTApk()
  786. /**
  787. * 是否抖音平台(抖音、抖音极速版)
  788. * 视频跳转要抖音平台才支持
  789. */
  790. static get isDouyin()
  791. /**
  792. * 是否魅族平台
  793. */
  794. static get isMZ()
  795. /**
  796. * 是否233平台
  797. */
  798. static get isT33()
  799. /**
  800. * 是否摸摸鱼(穿山甲android sdk)
  801. */
  802. static get isMmy()
  803. /**
  804. * 是否快手平台
  805. */
  806. static get isKs()
  807. /**
  808. * 是否华为平台(rpk)
  809. */
  810. static get isHw()
  811. /**
  812. * 是否vivo APK平台
  813. */
  814. static get isVVApk()
  815. /**
  816. * 是否vivo APK平台
  817. */
  818. static get isOPApk()
  819. /**
  820. * 是否IOS平台
  821. */
  822. static get isIos()
  823. /**
  824. * 震动 默认短震动
  825. * @param time 震动时间,默认100
  826. * time 震动信息 单个数字为持续时间 数组情况奇数索引为持续时间偶数索引为等待时间,毫秒单位 //小游戏暂不考虑间断震动
  827. * >=400表示长震动
  828. * 小游戏平台只有长短震动,不与时间匹配。
  829. */
  830. static vibration(time?: number | number[]): void
  831. //异步相关 ts使用前安装库npm install tslib
  832. /**
  833. * 异步-等待几秒
  834. * @param num 秒
  835. */
  836. static waitSeconds(num:number)
  837. /**
  838. * 异步-下一帧
  839. */
  840. static waitNext()
  841. /**
  842. * 异步-等待几帧
  843. * @param num 帧
  844. */
  845. static waitFrames(num:number)
  846. }