loader.min.js
3.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
(function() {
// 加载数据
var goInit = function() {
if (window.isGetData == 1) {
Core.init();
} else {
window.isGetData = 1;
}
}
var getData = function(url) {
var params = location.hash.slice(1);
var args = params.match(/app_id=(\w*)&?/);
var start_page = params.match(/mod=(\w*)&?/);
var core_server = params.match(/core_server=(.*)&?/);
var appId = '';
var skin_v = '?' + $('#skin').attr('data-v');
if (args && args.length == 2) {
//匹配出app_id
appId = args[1];
}
if(start_page && start_page.length == 2){
//匹配出启动模块
Core.start_page = start_page[1];
console.log(Core.start_page);
}
if (core_server){
Core.server = core_server[1]
}
location.hash = '';
if (appId == '') {
//刷新地址出错
params = localStorage.getItem('params_' + url);
appId = localStorage.getItem('app_id');
} else {
localStorage.setItem('params_' + url, params);
localStorage.setItem('app_id', appId);
}
Core.params = params;
if (!appId) {
//无法获取到app_id
Core.showTips('无法获取app_id!', false, 3000);
goInit();
$('#loading').hide();
return;
}
Core.Data.app_id = appId;
var setSkin = false;
//先尝试设置皮肤,检查是否自动登录
var tryAutoLogin = false;
var _skin = localStorage.getItem('skin_' + appId);
if (_skin) {
$('#skin').attr('href', Core.server + '/static/sdk/skin/' + _skin + '/skin.css' + skin_v);
setSkin = true;
}
if ($('#login').length != 0) {
var auto = localStorage.getItem('auto');
var auto_time = parseInt(localStorage.getItem('auto_time'));
var d = new Date().getTime();
if (auto == 'true' && (d - auto_time) < 600000) {
tryAutoLogin = false;
} else if (auto == null) {
tryAutoLogin = false;
} else {
tryAutoLogin = true;
}
}
//如果不尝试自动登录,直接初始化界面
if (!tryAutoLogin)
goInit();
Core.ajax({
type: 'GET',
url: url + '?' + params,
dataType: 'json',
success: function(data) {
if (data.code == 0) {
// 成功请求
Core.Data = data.msg;
if (Core.Data.face) {
Core.Data.face = Core.server + data.msg.face;
}
//更新server
var lastServer = localStorage.getItem('last_server');
if (Core.Data.new_server) {
if (lastServer && lastServer == Core.Data.new_server) {
//没有变化
} else {
//需要更新server
var s = 'sdk://changeServer?addr=' + Core.Data.new_server;
localStorage.setItem('last_server', Core.Data.new_server);
location.href = s;
}
}
if (!setSkin && data.skin) {
$('#skin').attr('href', Core.server + '/static/sdk/skin/' + data.skin + '/skin.css' + skin_v);
localStorage.setItem('skin_' + appId, data.skin);
}
localStorage.setItem('data_' + url, JSON.stringify(data.msg));
//模块初始化函数,兼容旧版本sdk
if (typeof(window.initFunc) == "function") {
window.initFunc();
}
// 核心初始化
$('#loading').hide();
if (tryAutoLogin) {
goInit();
} else {
var first_mod = Core.start_page? Core.start_page: 'home';
Core.updateMod(first_mod);
}
} else {
//参数出错,没有游戏服什么的.
$('#loading').hide();
$('<h2 class="error_title">出错了,正在努力抢修中...</h2>').appendTo($('.mask'));
Core.showTips(data.msg, false, 6000);
// 核心初始化
Core.loadFinished();
}
},
error: function(xhr, type) {
// 请求失败,服务器崩溃
//尝试从缓存中获取数据
var data_str = localStorage.getItem('data_' + url);
if (data_str && data_str != '') {
var data = JSON.parse(data_str);
if (typeof data == "object") {
Core.Data = data;
if (tryAutoLogin) {
goInit();
} else {
Core.updateMod('home');
}
}
}
Core.showTips('网络出错,请检查网络状态。', false);
// 核心初始化
$('#loading').hide();
}
});
}
window.getData = getData;
})();