加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Cocos2d-js jsb native 运行嵌套proto文件读取失败问题解决方案

发布时间:2020-12-14 17:11:59 所属栏目:百科 来源:网络整理
导读:Util . fetch = function (path , callback) { if (callback typeof callback != 'function' ) callback = null ; if ( Util . IS_NODE ) { var fs = require( "fs" ) ; if (callback) { fs.readFile(path , function (err , data) { if (err) callback( nul
Util.fetch = function(path,callback) {
    if (callback && typeof callback != 'function')
        callback = null;
    if (Util.IS_NODE) {
        var fs = require("fs");
        if (callback) {
            fs.readFile(path,function(err,data) {
                if (err)
                    callback(null);
                else
                    callback(""+data);
            });
        } else
            try {
                return fs.readFileSync(path);
            } catch (e) {
                return null;
            }
    } else {
        if(cc.sys.isNative) {
            //Native版本需要特殊处理下ProtoBuf的读取方式
            var msg = jsb.fileUtils.getStringFromFile(path);
            if(callback){
                callback(msg);
            }else{
                return msg;
            }
        }else{
            var xhr = Util.XHR();
            xhr.open('GET',path,callback ? true : false);
            // xhr.setRequestHeader('User-Agent','XMLHTTP/1.0');
            xhr.setRequestHeader('Accept','text/plain');
            if (typeof xhr.overrideMimeType === 'function') xhr.overrideMimeType('text/plain');
            if (callback) {
                xhr.onreadystatechange = function() {
                    if (xhr.readyState != 4) return;
                    if (/* remote */ xhr.status == 200 || /* local */ (xhr.status == 0 && typeof xhr.responseText === 'string'))
                        callback(xhr.responseText);
                    else
                        callback(null);
                };
                if (xhr.readyState == 4)
                    return;
                xhr.send(null);
            } else {
                xhr.send(null);
                if (/* remote */ xhr.status == 200 || /* local */ (xhr.status == 0 && typeof xhr.responseText === 'string'))
                    return xhr.responseText;
                return null;
            }
        }
    }
};

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读