import config from '../../libs/config/config'; // 定义高阶函数 function once(fn) { let called = false; let result; return function(...args) { if (!called) { result = fn.apply(this, args); called = true; } return result; }; } // 使用高阶函数 const loadFont = once(() => { // console.log('这个函数只能执行一次'); // #ifdef APP-NVUE // nvue通过weex的dom模块引入字体,相关文档地址如下: // https://weex.apache.org/zh/docs/modules/dom.html#addrule const domModule = weex.requireModule('dom'); domModule.addRule('fontFace', { 'fontFamily': "uicon-iconfont", 'src': `url('${config.iconUrl}')` }); if (config.customIcon.family) { domModule.addRule('fontFace', { 'fontFamily': config.customIcon.family, 'src': `url('${config.customIcon.url}')` }); } // #endif // #ifdef APP || H5 || MP-WEIXIN || MP-ALIPAY uni.loadFontFace({ global: true, // 是否全局生效。微信小程序 '2.10.0'起支持全局生效,需在 app.vue 中调用。 family: 'uicon-iconfont', source: 'url("' + config.iconUrl + '")', success() { // console.log('内置字体图标加载成功'); }, fail() { // console.error('内置字体图标加载出错'); } }); if (config.customIcon.family) { uni.loadFontFace({ global: true, // 是否全局生效。微信小程序 '2.10.0'起支持全局生效,需在 app.vue 中调用。 family: config.customIcon.family, source: 'url("' + config.customIcon.url + '")', success() { // console.log('扩展字体图标加载成功'); }, fail() { // console.error('扩展字体图标加载出错'); } }); } // #endif // #ifdef APP-NVUE // if (this.customFontFamily) { // domModule.addRule('fontFace', { // 'fontFamily': `${this.customPrefix}-${this.customFontFamily}`, // 'src': `url('${this.customFontUrl}')` // }) // } // #endif return true; }); let fontUtil = { loadFont } export default fontUtil