123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- 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
|