12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import { _decorator, Component, Node, sys } from 'cc';
- const { ccclass, property } = _decorator;
- @ccclass('SubPackageLoader')
- export class SubPackageLoader {
- static load(packages: string[], progressCallBack: Function, completeCallBack: Function, errorCallback?: Function): void {
- console.log("平台:" + sys.browserType);
- // switch (sys.browserType) {
- // case sys.BROWSER_TYPE_WECHAT:
- this.__loadWX(packages, progressCallBack, completeCallBack, errorCallback);
- // break;
- // default:
- // break;
- // }
- }
- private static loadSubpackage(index: number, packages: string[], progressCallBack: Function, completeCallBack: Function, errorCallback?: Function): void {
- let loadTask: any;
- let wx: any = window["wx"];
- let packageName: string = packages[index];
- index++;
- loadTask = wx.loadSubpackage({
- name: packageName,
- success: (res) => {
- if (index < packages.length) {
- this.loadSubpackage(index, packages, progressCallBack, completeCallBack, errorCallback)
- } else {
- if (completeCallBack) {
- completeCallBack();
- }
- }
- },
- fail: (err) => {
- console.error(err);
- if (errorCallback) {
- errorCallback(packageName + "加载出错!");
- }
- }
- })
- loadTask.onProgressUpdate(res => {
- if (progressCallBack) {
- progressCallBack(res.progress);
- }
- })
- }
- /**
- * 微信
- * @param packages
- * @param progressCallBack
- * @param completeCallBack
- */
- private static __loadWX(packages: string[], progressCallBack: Function, completeCallBack: Function, errorCallback?: Function): void {
- console.log("wx subpackage load");
- let loadIndex: number = 0;
- let total: number = packages.length;
- this.loadSubpackage(loadIndex, packages, progressCallBack, completeCallBack, errorCallback)
- }
- }
|