|
@@ -3,56 +3,88 @@ const { ccclass, property } = _decorator;
|
|
|
|
|
|
@ccclass('SubPackageLoader')
|
|
|
export class SubPackageLoader {
|
|
|
-
|
|
|
- static load(packages:string[],progressCallBack:Function,completeCallBack:Function,errorCallback?:Function):void{
|
|
|
- console.log("平台:"+sys.browserType);
|
|
|
+
|
|
|
+ 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);
|
|
|
+ // 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];
|
|
|
+ console.log("加载分包:", packageName)
|
|
|
+ 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{
|
|
|
+ private static __loadWX(packages: string[], progressCallBack: Function, completeCallBack: Function, errorCallback?: Function): void {
|
|
|
console.log("wx subpackage load");
|
|
|
- let wx:any=window["wx"];
|
|
|
- let packageName:string;
|
|
|
- let loadIndex:number=0;
|
|
|
- let total:number=packages.length;
|
|
|
- let loadTask:any;
|
|
|
- for (let index = 0; index < packages.length; index++) {
|
|
|
- packageName = packages[index];
|
|
|
- loadTask=wx.loadSubpackage({
|
|
|
- name:packageName,
|
|
|
- success:(res)=>{
|
|
|
- loadIndex++;
|
|
|
- if(loadIndex>=total){
|
|
|
- if(completeCallBack){
|
|
|
- completeCallBack();
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- fail:(err)=>{
|
|
|
- console.error(err);
|
|
|
- if(errorCallback){
|
|
|
- errorCallback(packageName+"加载出错!");
|
|
|
- }
|
|
|
- }
|
|
|
- })
|
|
|
- loadTask.onProgressUpdate(res=>{
|
|
|
- if(progressCallBack){
|
|
|
- progressCallBack(loadIndex+res.progress);
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
+ let wx: any = window["wx"];
|
|
|
+ let packageName: string;
|
|
|
+ let loadIndex: number = 0;
|
|
|
+ let total: number = packages.length;
|
|
|
+ let loadTask: any;
|
|
|
+ this.loadSubpackage(loadIndex, packages, progressCallBack, completeCallBack, errorCallback)
|
|
|
+ // for (let index = 0; index < packages.length; index++) {
|
|
|
+ // packageName = packages[index];
|
|
|
+ // loadTask = wx.loadSubpackage({
|
|
|
+ // name: packageName,
|
|
|
+ // success: (res) => {
|
|
|
+ // loadIndex++;
|
|
|
+ // if (loadIndex >= total) {
|
|
|
+ // if (completeCallBack) {
|
|
|
+ // completeCallBack();
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ // fail: (err) => {
|
|
|
+ // console.error(err);
|
|
|
+ // if (errorCallback) {
|
|
|
+ // errorCallback(packageName + "加载出错!");
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ // loadTask.onProgressUpdate(res => {
|
|
|
+ // if (progressCallBack) {
|
|
|
+ // progressCallBack(loadIndex + res.progress);
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ // }
|
|
|
}
|
|
|
}
|