文章目录
- 前言
- 工具类
- 单例
- 日志打印
- 输入框的封装
前言
之前的文章写了如何开发小游戏聚合SDK,既然是聚合SDK,工具类的封装也比较重要,做好基础搭建后续在接入其他渠道的时候能大大减少工作量。
工具类
单例
初始化的配置信息,比如应用ID 、渠道ID等需要全局使用,而且初始化之后不会改变。使用一个单例保存比较合适。
// 创建一个全局的 config 对象
let globalConfig = {evn: 'prod', // 中台环境,默认正式服appId: '', // 平台 AppIdchannelId: '', // 平台渠道ID//····
};// 可以定义其他对象,全局唯一的const ConfigSingleton = {setGlobalConfig(config = {}) {globalConfig = config// Object.assign(globalConfig, config); // 合并传入的配置到已有的 globalConfig},getGlobalConfig() {return this.globalConfig},// 追加其他对象的set\get方法
}
日志打印
日志打印需要满足的需求:
- 统一增加 tag 和日期。
- 部分日志在 debug 模式下输出方便 CP 调试,但是在线上环境时需要关闭。
- 日志区分级别。
export const Logger = (() => {const tag = "[tag]"let debugMode = false// 日志级别方法映射const levels = {info:console.info,log: console.log,error: console.error}function setDebugMode(mode) {debugMode = mode}/*** debug 模式下才输出 info 级别日志,否则 输出 log 和 error 日志(因为debug不好使,所以使用 info 级别输出敏感日志)* @param {string} level * @param {...any} args