175 lines
6.0 KiB
JavaScript
175 lines
6.0 KiB
JavaScript
|
import moduleHelper from './module-helper';
|
|||
|
import { launchEventType } from '../plugin-config';
|
|||
|
import { setArrayBuffer, uid } from './utils';
|
|||
|
import '../events';
|
|||
|
export default {
|
|||
|
WXReportGameStart() {
|
|||
|
GameGlobal.manager.reportCustomLaunchInfo();
|
|||
|
},
|
|||
|
WXReportGameSceneError(sceneId, errorType, errStr, extInfo) {
|
|||
|
if (GameGlobal.manager && GameGlobal.manager.reportGameSceneError) {
|
|||
|
GameGlobal.manager.reportGameSceneError(sceneId, errorType, errStr, extInfo);
|
|||
|
}
|
|||
|
},
|
|||
|
WXWriteLog(str) {
|
|||
|
if (GameGlobal.manager && GameGlobal.manager.writeLog) {
|
|||
|
GameGlobal.manager.writeLog(str);
|
|||
|
}
|
|||
|
},
|
|||
|
WXWriteWarn(str) {
|
|||
|
if (GameGlobal.manager && GameGlobal.manager.writeWarn) {
|
|||
|
GameGlobal.manager.writeWarn(str);
|
|||
|
}
|
|||
|
},
|
|||
|
WXHideLoadingPage() {
|
|||
|
if (GameGlobal.manager && GameGlobal.manager.hideLoadingPage) {
|
|||
|
GameGlobal.manager.hideLoadingPage();
|
|||
|
}
|
|||
|
},
|
|||
|
WXReportUserBehaviorBranchAnalytics(branchId, branchDim, eventType) {
|
|||
|
wx.reportUserBehaviorBranchAnalytics({ branchId, branchDim, eventType });
|
|||
|
},
|
|||
|
WXPreloadConcurrent(count) {
|
|||
|
if (GameGlobal.manager && GameGlobal.manager.setConcurrent) {
|
|||
|
GameGlobal.manager.setConcurrent(count);
|
|||
|
}
|
|||
|
},
|
|||
|
WXIsCloudTest() {
|
|||
|
if (typeof GameGlobal.isTest !== 'undefined' && GameGlobal.isTest) {
|
|||
|
return true;
|
|||
|
}
|
|||
|
return false;
|
|||
|
},
|
|||
|
WXUncaughtException(needAbort) {
|
|||
|
function currentStackTrace() {
|
|||
|
const err = new Error('WXUncaughtException');
|
|||
|
return err;
|
|||
|
}
|
|||
|
const err = currentStackTrace();
|
|||
|
let fullTrace = err.stack?.toString();
|
|||
|
if (fullTrace) {
|
|||
|
const posOfThisFunc = fullTrace.indexOf('WXUncaughtException');
|
|||
|
if (posOfThisFunc !== -1) {
|
|||
|
fullTrace = fullTrace.substr(posOfThisFunc);
|
|||
|
}
|
|||
|
const posOfRaf = fullTrace.lastIndexOf('browserIterationFunc');
|
|||
|
if (posOfRaf !== -1) {
|
|||
|
fullTrace = fullTrace.substr(0, posOfRaf);
|
|||
|
}
|
|||
|
}
|
|||
|
const realTimelog = wx.getRealtimeLogManager();
|
|||
|
realTimelog.error(fullTrace);
|
|||
|
const logmanager = wx.getLogManager({ level: 0 });
|
|||
|
logmanager.warn(fullTrace);
|
|||
|
if (needAbort === true) {
|
|||
|
GameGlobal.onCrash(err);
|
|||
|
throw err;
|
|||
|
}
|
|||
|
else {
|
|||
|
setTimeout(() => {
|
|||
|
throw err;
|
|||
|
}, 0);
|
|||
|
}
|
|||
|
},
|
|||
|
WXCleanAllFileCache() {
|
|||
|
if (GameGlobal.manager && GameGlobal.manager.cleanCache) {
|
|||
|
const key = uid();
|
|||
|
GameGlobal.manager.cleanAllCache().then((res) => {
|
|||
|
moduleHelper.send('CleanAllFileCacheCallback', JSON.stringify({
|
|||
|
callbackId: key,
|
|||
|
result: res,
|
|||
|
}));
|
|||
|
});
|
|||
|
return key;
|
|||
|
}
|
|||
|
return '';
|
|||
|
},
|
|||
|
WXCleanFileCache(fileSize) {
|
|||
|
if (GameGlobal.manager && GameGlobal.manager.cleanCache) {
|
|||
|
const key = uid();
|
|||
|
GameGlobal.manager.cleanCache(fileSize).then((res) => {
|
|||
|
moduleHelper.send('CleanFileCacheCallback', JSON.stringify({
|
|||
|
callbackId: key,
|
|||
|
result: res,
|
|||
|
}));
|
|||
|
});
|
|||
|
return key;
|
|||
|
}
|
|||
|
return '';
|
|||
|
},
|
|||
|
WXRemoveFile(path) {
|
|||
|
if (GameGlobal.manager && GameGlobal.manager.removeFile && path) {
|
|||
|
const key = uid();
|
|||
|
GameGlobal.manager.removeFile(path).then((res) => {
|
|||
|
moduleHelper.send('RemoveFileCallback', JSON.stringify({
|
|||
|
callbackId: key,
|
|||
|
result: res,
|
|||
|
}));
|
|||
|
});
|
|||
|
return key;
|
|||
|
}
|
|||
|
return '';
|
|||
|
},
|
|||
|
WXGetCachePath(url) {
|
|||
|
if (GameGlobal.manager && GameGlobal.manager.getCachePath) {
|
|||
|
return GameGlobal.manager.getCachePath(url);
|
|||
|
}
|
|||
|
},
|
|||
|
WXGetPluginCachePath() {
|
|||
|
if (GameGlobal.manager && GameGlobal.manager.PLUGIN_CACHE_PATH) {
|
|||
|
return GameGlobal.manager.PLUGIN_CACHE_PATH;
|
|||
|
}
|
|||
|
},
|
|||
|
WXOnLaunchProgress() {
|
|||
|
if (GameGlobal.manager && GameGlobal.manager.onLaunchProgress) {
|
|||
|
const key = uid();
|
|||
|
// 异步执行,保证C#已经记录这个回调ID
|
|||
|
setTimeout(() => {
|
|||
|
GameGlobal.manager.onLaunchProgress((e) => {
|
|||
|
moduleHelper.send('OnLaunchProgressCallback', JSON.stringify({
|
|||
|
callbackId: key,
|
|||
|
res: JSON.stringify(Object.assign({}, e.data, {
|
|||
|
type: e.type,
|
|||
|
})),
|
|||
|
}));
|
|||
|
|
|||
|
if (e.type === launchEventType.prepareGame) {
|
|||
|
moduleHelper.send('RemoveLaunchProgressCallback', JSON.stringify({
|
|||
|
callbackId: key,
|
|||
|
}));
|
|||
|
}
|
|||
|
});
|
|||
|
}, 0);
|
|||
|
return key;
|
|||
|
}
|
|||
|
return '';
|
|||
|
},
|
|||
|
WXSetDataCDN(path) {
|
|||
|
if (GameGlobal.manager && GameGlobal.manager.setDataCDN) {
|
|||
|
GameGlobal.manager.setDataCDN(path);
|
|||
|
}
|
|||
|
},
|
|||
|
WXSetPreloadList(paths) {
|
|||
|
if (GameGlobal.manager && GameGlobal.manager.setPreloadList) {
|
|||
|
const list = (paths || '').split(',').filter(str => !!str && !!str.trim());
|
|||
|
GameGlobal.manager.setPreloadList(list);
|
|||
|
}
|
|||
|
},
|
|||
|
WXSetArrayBuffer(buffer, offset, callbackId) {
|
|||
|
setArrayBuffer(buffer, offset, callbackId);
|
|||
|
},
|
|||
|
WXLaunchOperaBridge(args) {
|
|||
|
const res = GameGlobal.events.emit('launchOperaMsgBridgeFromWasm', args);
|
|||
|
if (Array.isArray(res) && res.length > 0) {
|
|||
|
return res[0];
|
|||
|
}
|
|||
|
return null;
|
|||
|
},
|
|||
|
WXLaunchOperaBridgeToC(callback, args) {
|
|||
|
moduleHelper.send('WXLaunchOperaBridgeToC', JSON.stringify({
|
|||
|
callback,
|
|||
|
args,
|
|||
|
}));
|
|||
|
},
|
|||
|
};
|