HotUpdate.js.map 23.1 KB
{"version":3,"sources":["assets/script/game/HotUpdate.js"],"names":["EventCenter","require","g_check","cc","Class","Component","properties","_searchPath","manifestUrl","type","Asset","_checkUpdate","_checkUpdateNum","_updating","_isForceUpdate","_loadFiles","byteProgress","ProgressBar","fileProgress","info","Label","fileLabel","byteLabel","forceUpdate","Layout","ensureBut","Button","_forceHotUpdate","start","sys","isNative","startGame","hotUpdateInit","hotUpdateLogic","delay","delayTime","finishedAll","callFunc","overTimeStartGame","node","runAction","sequence","checkCb","event","getEventCode","jsb","EventAssetsManager","ERROR_NO_LOCAL_MANIFEST","showUpDateInfo","ERROR_DOWNLOAD_MANIFEST","ERROR_PARSE_MANIFEST","ALREADY_UP_TO_DATE","NEW_VERSION_FOUND","checkUpdate","hotUpdate","active","log","GameStart","emit","self","on","ensureButCallBack","director","end","initAssetsManager","forceUpdateLogic","fileUtils","getWritablePath","versionCompareHandle","versionA","versionB","vA","split","vB","length","parseInt","localStorage","getItem","i","a","b","setItem","_am","AssetsManager","setVerifyCallback","path","asset","compressed","expectedMD5","md5","relativePath","size","os","OS_ANDROID","setMaxConcurrentTask","setEventCallback","bind","getState","State","UNINITED","url","nativeUrl","loader","md5Pipe","transformURL","loadLocalManifest","updateCb","update","needRestart","failed","UPDATE_PROGRESSION","progress","getPercent","getPercentByFile","string","getDownloadedFiles","getTotalFiles","getDownloadedBytes","getTotalBytes","msg","getMessage","UPDATE_FINISHED","UPDATE_FAILED","ERROR_UPDATING","getAssetId","ERROR_DECOMPRESS","restartGame","onDestroy","searchPaths","getSearchPaths","newPaths","getLocalManifest","Array","prototype","unshift","JSON","stringify","setSearchPaths","audioEngine","stopAll","game","restart","strInfo"],"mappings":"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","sourceRoot":"/","sourcesContent":["// var md5 = require(\"md5\")\nlet  EventCenter = require(\"EventCenter\")\nvar g_check = false;\ncc.Class({\n    extends: cc.Component,\n\n    properties: {\n        _searchPath: \"\",//搜索路径\n        manifestUrl: {\n            type: cc.Asset,     // use 'type:' to declare an object reference\n            default: null,      // object's default value is null\n        },\n\n        _checkUpdate: false,\n        _checkUpdateNum: 5,//检查更新次数\n        _updating: false,//正在检查更新或者更新中\n        _isForceUpdate: false,\n\n        _loadFiles: \"yybs-remote-asset\",\n\n        byteProgress: cc.ProgressBar,//字节进度\n        fileProgress: cc.ProgressBar,//文件进度\n        info: cc.Label,//信息显示\n        fileLabel: cc.Label,//文件个数\n        byteLabel: cc.Label,//字节个数\n\n        // retryBtn: cc.Button,//重置按钮\n        // checkBtn: cc.Button,//检查更新按钮 目前是自动得\n        // updateBtn: cc.Button,//更新按钮  目前是自动的\n\n        forceUpdate: cc.Layout,//强更界面\n        ensureBut: cc.Button,//确定按钮\n        _forceHotUpdate: \"\",\n    },\n    start() {\n        // if (CC_DEBUG) {//发布debug模式apk跳过热更\n\n        //     this.startGame();//隐藏当前ui//多场景时 这直接加载下一个场景\n        // }\n        if (!cc.sys.isNative)//web//跳过热更 \n        {\n            this.startGame();//隐藏当前ui//多场景时 这直接加载下一个场景\n        }\n        else {\n            this.hotUpdateInit();\n            this.hotUpdateLogic();//热更逻辑\n            var delay = cc.delayTime(10);\n            var finishedAll = cc.callFunc(this.overTimeStartGame, this);\n            this.node.runAction(cc.sequence(delay, finishedAll));\n        }\n    },\n\n    checkCb: function (event) {\n        this._checkUpdate = false;//检测更新完毕\n        this._updating = false;//更新中\n        switch (event.getEventCode()) {\n            case jsb.EventAssetsManager.ERROR_NO_LOCAL_MANIFEST:\n                this.showUpDateInfo('检查更新失败');\n                g_check = true;\n                break;\n            case jsb.EventAssetsManager.ERROR_DOWNLOAD_MANIFEST:\n            case jsb.EventAssetsManager.ERROR_PARSE_MANIFEST:\n                this.showUpDateInfo('检查更新失败');\n                g_check = true;\n                break;\n            case jsb.EventAssetsManager.ALREADY_UP_TO_DATE:\n                this.showUpDateInfo('已是最新版本');\n                if (this._isForceUpdate == false) {\n                    this.startGame();\n                    return;\n                }\n                break;\n            case jsb.EventAssetsManager.NEW_VERSION_FOUND:\n                this.showUpDateInfo('发现新版本,正在更新...');\n                g_check = false;\n                break;\n            default:\n                return;\n        }\n        if (g_check == true) {\n            this.checkUpdate();\n        }\n        else {\n            this.hotUpdate();\n        }\n\n    },\n\n    overTimeStartGame: function () {\n        if (this.node.active == true && this._checkUpdate == true) {\n            this.startGame();\n        }\n    },\n    startGame: function ()//开始游戏\n    {\n        this.node.active = false;\n        cc.log(\"开始游戏\");\n        EventCenter.EventCenter.GameStart.emit();\n    },\n    hotUpdateInit: function () {\n\n        var self = this;\n        this.ensureBut.node.on('click', function (event) {\n            self.ensureButCallBack();\n        }, this);\n    },\n    ensureButCallBack: function ()//确定按钮回掉\n    {\n        // cc.sys.openURL('http://formal.share.idj66nm.com/down/link?gameId=200001&gameState=1');//强更下载地址\n        cc.director.end();\n    },\n    hotUpdateLogic: function ()//热更逻辑\n    {\n        this.initAssetsManager();\n        this.checkUpdate();\n    },\n    forceUpdateLogic: function ()//强更逻辑\n    {\n        this._isForceUpdate = true;\n        this.forceUpdate.node.active = true;\n    },\n    initAssetsManager: function ()//初始化\n    {\n        this._searchPath = ((jsb.fileUtils ? jsb.fileUtils.getWritablePath() : '/') + this._loadFiles);//获取热更时得搜索路径\n        cc.log('hotUpdate searchPath =' + this._searchPath);\n        var self = this;\n        var versionCompareHandle = function (versionA, versionB) //版本对比函数(检查本地mainfest和远端mainfes时,如果返回值大于0 会自动更新)\n        {\n            cc.log(\"JS Custom Version Compare: version A is \" + versionA + ', version B is ' + versionB);\n            var vA = versionA.split('.');\n            var vB = versionB.split('.');\n            if (vA.length != vB.length || vA.length < 3)\n                return 0;\n            if ((parseInt(vA[0]) != parseInt(vB[0])))//前两位控制大版本更新\n            {\n                //强制更新\n                self.forceUpdateLogic();\n                return 0;\n            }\n            self._forceHotUpdate = vA[0] + \"\" + vA[1];\n            var forceUpdate = cc.sys.localStorage.getItem('forceupdateyybs');\n            cc.log(\"initAssetsManager forceupdate \" + forceUpdate);\n            self._forceHotUpdate = vB[0] + \"\" + vB[1];\n            for (var i = 0; i < vA.length; ++i) {\n                var a = parseInt(vA[i]);\n                var b = parseInt(vB[i] || 0);\n                if (a === b) {\n                    continue;\n                }\n                return -1;\n            }\n            if (vB.length > vA.length) {\n                return -1;\n            }\n            cc.sys.localStorage.setItem('forceupdateyybs', self._forceHotUpdate);\n            return 0;\n        };\n        this._am = new jsb.AssetsManager(this.manifestUrl, this._searchPath, versionCompareHandle);//初始化 创建 AssetsManager\n        // if (!cc.sys.ENABLE_GC_FOR_NATIVE_OBJECTS)\n        // {\n        //     this._am.retain();\n        // }\n        //用户文件校验接口 由于下载过程中仍然有小概率可能由于网络原因或其他网络库的问题导致下载的文件内容有问题,\n        //在文件下载完成后热更新管理器会调用这个接口,如果返回 true 表示文件正常,返回 false 表示文件有问题\n        this._am.setVerifyCallback(function (path, asset) {\n            var compressed = asset.compressed;// 是压缩文件 不需要检查它的md5\n            var expectedMD5 = asset.md5;//检索md5值。\n            var relativePath = asset.path;// asset.path 是相对路径 path 绝对路径.\n            var size = asset.size;//文件的大小,但是这个值可能不存在\n            if (compressed) {\n                return true;\n            }\n            else {\n                return true;\n                // //使用绝对路径来加载文件,之后计算md5值\n                // var data = jsb.fileUtils.getDataFromFile(path);\n                // var curMD5 = md5(data);\n                // if (curMD5 == asset.md5) {\n                //     //md5检验通过\n                //     return true;\n                // } else {\n                //     //md5检验失败\n                //     //this.info.string = relativePath + \"文件MD5校验失败\";\n                //     cc.log(\"md5检验失败\");\n                //     return false;\n                // }\n            }\n        });\n        if (cc.sys.os === cc.sys.OS_ANDROID) {//控制下载并发数量的 API 有些Android设备可能会在并发任务太多时减慢下载速度。设置适合游戏的值。\n            this._am.setMaxConcurrentTask(2);\n        }\n    },\n\n\n\n    checkUpdate: function ()//检查更新\n    {\n        this._checkUpdateNum = this._checkUpdateNum - 1;\n        if (this._checkUpdateNum <= 0) {\n            //直接登陆\n            this.startGame();\n            return;\n        }\n        if (this._updating) {\n            this.showUpDateInfo('正在检测或者更新中,请耐心等待...');\n            return;\n        }\n        this._am.setEventCallback(this.checkCb.bind(this));\n\n        if (this._am.getState() === jsb.AssetsManager.State.UNINITED) {\n            var url = this.manifestUrl.nativeUrl;\n            if (cc.loader.md5Pipe) {\n                url = cc.loader.md5Pipe.transformURL(url);\n            }\n            cc.log('加载本地Manifest', url);\n            this._am.loadLocalManifest(url);\n        }\n        this._am.checkUpdate();\n        this._checkUpdate = true;//正在检测更新\n        this.showUpDateInfo('正在检测更新,请耐心等待...');\n    },\n\n\n    hotUpdate: function () {\n        if (this._am == null) {\n            return;\n        }\n\n        this._am.setEventCallback(this.updateCb.bind(this));\n\n        if (this._am.getState() === jsb.AssetsManager.State.UNINITED) {\n            this._am.loadLocalManifest(this.manifestUrl);\n        }\n        this._am.update();\n        this._updating = true;\n    },\n    updateCb: function (event) {\n        var needRestart = false;\n        var failed = false;\n        switch (event.getEventCode()) {\n            case jsb.EventAssetsManager.ERROR_NO_LOCAL_MANIFEST:\n                cc.log('错误:没找到本地manifest文件');\n                failed = true;\n                break;\n            case jsb.EventAssetsManager.UPDATE_PROGRESSION://更新进度\n                this.byteProgress.progress = event.getPercent();\n                this.fileProgress.progress = event.getPercentByFile();\n                this.fileLabel.node.active = true;\n                this.fileLabel.string = event.getDownloadedFiles() + ' / ' + event.getTotalFiles();\n                this.byteLabel.string = event.getDownloadedBytes() / 1024 + ' / ' + event.getTotalBytes() / 1024;\n                var msg = event.getMessage();\n                if (msg) {\n                    // cc.log(event.getPercent()/100 + '% : ' + msg);\n                }\n                break;\n            case jsb.EventAssetsManager.ERROR_DOWNLOAD_MANIFEST:\n            case jsb.EventAssetsManager.ERROR_PARSE_MANIFEST:\n                cc.log('错误:下载或解析MANIFEST文件失败');\n                failed = true;\n                break;\n            case jsb.EventAssetsManager.ALREADY_UP_TO_DATE:\n                this.showUpDateInfo('与服务器版本一致');\n                if (this._isForceUpdate == false)\n                    this.startGame();\n                break;\n            case jsb.EventAssetsManager.UPDATE_FINISHED:\n                this.showUpDateInfo('更新完成');\n                this._updating = false;\n                needRestart = true;\n                break;\n            case jsb.EventAssetsManager.UPDATE_FAILED://更新失败\n                this._updating = false;\n                failed = true;\n                break;\n            case jsb.EventAssetsManager.ERROR_UPDATING:\n                if (event.getMessage()) {\n                    this.info.string = '更新' + event.getAssetId() + '时发生错误.' + event.getMessage();\n                } else {\n                    this.info.string = '更新' + event.getAssetId() + '时发生错误';\n                }\n                needRestart = true;\n                break;\n            case jsb.EventAssetsManager.ERROR_DECOMPRESS:\n                this.showUpDateInfo('解压发生错误.' + event.getMessage());\n                break;\n            default:\n                break;\n        }\n        if (needRestart) {\n            this.restartGame();\n            return;\n        }\n        if (failed) {\n\n            this._updating = false;\n            this.checkUpdate();\n        }\n    },\n    onDestroy: function () {\n        if (this._am)\n            this._am.setEventCallback(null);\n    },\n    restartGame: function ()//重启游戏\n    {\n\n        this.fileProgress.progress = 1;\n        this.byteProgress.progress = 1\n        var searchPaths = jsb.fileUtils.getSearchPaths();\n        var newPaths = this._am.getLocalManifest().getSearchPaths();\n        Array.prototype.unshift(searchPaths, newPaths);\n        cc.sys.localStorage.setItem('HotUpdateSearchPaths', JSON.stringify(searchPaths));\n        cc.sys.localStorage.setItem('forceupdateyybs', this._forceHotUpdate);\n        jsb.fileUtils.setSearchPaths(searchPaths);\n        cc.audioEngine.stopAll();\n        cc.game.restart();\n    },\n    //显示更新信息\n    showUpDateInfo: function (strInfo) {\n        this.info.string = strInfo;\n    }\n});\n\n"]}