微信小程序离线引入 iconfont 字体图标

简介: 微信小程序离线引入 iconfont 字体图标

由于微信小程序的限制问题,我们不会像 Web 项目那样引入阿里的字体图标库,通常采用在线生成链接的方式引入。

但阿里矢量图库在 2022年 6-7月份 进行了网站维护,维护之后,不能“生成在线链接”引入到项目中了(但是现在又可以使用在线了,为了防止以后类似的事情发生,写了这篇文章)。

数字化管理平台

Vue3+Vite+VueRouter+Pinia+Axios+ElementPlus

权限系统-商城

个人博客地址

一、生成在线链接的方式(维护后没有找到入口)

1.1 查看在线链接

4b5f15f8f77845d898d7c497bf407626.png注意:如果在项目中每次加入了新的图标,必须更新代码,重新生成外部样式链接

c563afa170584574945741d82abd36ab.png

1.2 点击“下载至本地”按钮,得到字体包

1166ece5a25d4204b9a850a6e3f29e7f.png

打开项目中自定义的“iconfont.css”文件如下:

65bb476d9db74ebf9d6bbe984a1807cc.png

71b85dd8db7f4c9ba4017225af92dd78.png

1.3 上面选中部分,替换为在线链接:

a56554bc0c364094b7462292221dd39e.png

1.4 在 app.js 中引入,即可在 page 中使用:

3c9dd565b06346baa508761a9b62b29a.png

1.5 在 wxml 文件中使用:

<view class="padding-20-0 m-t-100 bgc">
        <view wx:if="{{safetyEmps.length}}">
            <view wx:key="this" wx:for="{{safetyEmps}}" class="mrg-0-10 {{index !== 0 ? 'm-t-30' : ''}}">
                <view class="font30 fontB padding20 colorfff" style="background-color: {{index % 2 == 0 ? '#0062D9' : '#5C75F2'}};">{{item.ename}}</view>
                <view class="flex-wrap text-right space-around m-t-10">
                    <view class="w50p padding20 bgc border-box position-r  {{index % 2 == 0 ? 'item' : 'item2'}}">
                        <view class="">今年计划投入<text class="font20">(万元)</text></view>
                        <view class="fontB font36 m-l-15p m-t-10">{{fn.transInput(item.sumMoney)}}</view>
                        <text class="iconfont icon-lvzhou_zongshu font70 theme-color posi-br"></text>
                    </view>
                    <view class="w50p padding20 bgc border-box position-r  {{index % 2 == 0 ? 'item' : 'item2'}}">
                        <view class="">今年实际支出<text class="font20">(万元)</text></view>
                        <view class="fontB font36 m-l-15p  m-t-10">{{fn.transInput(item.siOut)}}</view>
                        <text class="iconfont icon-a-touruzhichu theme-color font70 posi-br"></text>
                    </view>
                    <view class="w50p m-t-10 padding20 bgc border-box position-r  {{index % 2 == 0 ? 'item' : 'item2'}}">
                        <view class="">
                            <view>上年安全生产费</view>
                            <view>提取金额<text class="font20">(万元)</text></view>
                        </view>
                        <view class="fontB font36 theme-color m-l-15p  m-t-10">{{fn.transInput(item.snExtract)}}</view>
                        <text class="iconfont icon-yiqianding font100 theme-color posi-br"></text>
                    </view>
                    <view class="w50p m-t-10 padding20 bgc border-box position-r  {{index % 2 == 0 ? 'item' : 'item2'}}">
                        <view class="">
                            <view>上年安全生产费</view>
                            <view>余额<text class="font20">(万元)</text></view>
                        </view>
                        <view class="fontB font36 theme-color m-l-15p  m-t-10">{{fn.transInput(item.snBalance)}}</view>
                        <text class="iconfont icon-qiandinghezuoxieyi font70 theme-color posi-br" style="bottom:24rpx;"></text>
                    </view>
                </view>
            </view>
        </view>
        <view class="text-center padding20 bgc" wx:else>
            请选择企业
        </view>
</view>

页面效果:

2037173ef26445e4a5a8df0d931ebc97.png

二、6-7 月份官网维护后,没有找到在线生成链接的入口。维护后是这样的:

1595d9ea6af04ec49c05f266f39dc35b.png

这样就没有办法像之前那样在线生成链接引入微信小程序了,又不能像 Web 那样去引入字体,下面说一下微信小程序离线引入字体的处理。

由于微信小程序线上的资源限制了各种接口安全域名,所以在小程序里使用 iconfont 字体图标时,需要把平时的 iconfont 字体图标远程路径换成 base64 引入,就可以解决小程序引入iconfont字体图标这个问题了。

下载字体图标的过程和前面一样,就不再赘述。字体下载成功后,将得到一个名为“download.zip”的压缩包,解压后文件如下:

f1293ef98db144ff935e9aab44ebe24d.png

这里需要将 ttf 文件转为 base64 格式(关键)

推荐去 https://transfonter.org 进行格式转换,当然也可以通过其它方式转换。

配置:打开“ Base64 encode ” 选项,选择上传文件的格式“TTF格式”

26cf4e6f06b147468d60a240afbd9f6b.png点击 ”Add fonts“ 按钮,上传 ttf 文件,如下上传和上传完成的效果:


5c6b00b9f269483697e850833b743517.png

点击 ”Convert“ 按钮,进行格式转换,转换完成可下载和预览:

04dc67c7e6a14b6689931942f2131c61.png

点击 ”Download“ 按钮下载得到一个名为 “transfonter.org”开头的字体压缩包,字体包内三个文件如下:

0c9bee383b854e348e5d0935934cdcc4.png

打开 ”stylesheet.css“ 文件,并复制里面的内容:

4677de2b02564557a7e136aadc4e4ce7.png打开项目中自定义的 ”iconfont.css“ 文件,将下面 “@font-face”和 “.iconfont”中的代码,替换为上面复制的代码(注意这里替换的是两段代码):


3da47cc3860646f79a2768f230a8514a.png

b2a7e11d2d1449d68b6aaefcd4ac4024.png

你以为这样就完事儿了吗,不还没有,还需要加一段代码才能正常使用,如下:

[class^="icon-"],
[class*=" icon-"] {
        /* use !important to prevent issues with browser extensions that change fonts */
        font-family: 'iconfont' !important;
        font-style: normal;
        font-weight: normal;
        font-variant: normal;
        text-transform: none;
        line-height: 1;
        /* Better Font Rendering =========== */
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
}

好了,到这里算是真正的处理完成。就可以正常的在 “app.wxss” 和 “page” 中引入和使用了!!同在线引入,不再赘述!!

相关文章
|
2天前
|
小程序 前端开发 JavaScript
微信小程序结合PWA技术,提供离线访问、后台运行、桌面图标及原生体验,增强应用性能与用户交互。
微信小程序结合PWA技术,提供离线访问、后台运行、桌面图标及原生体验,增强应用性能与用户交互。开发者运用Service Worker等实现资源缓存与实时推送,利用Web App Manifest添加快捷方式至桌面,通过CSS3和JavaScript打造流畅动画与手势操作,需注意兼容性与性能优化,为用户创造更佳体验。
9 0
|
3月前
|
小程序 前端开发
微信小程序 添加 IconFont
微信小程序 添加 IconFont
155 0
|
小程序
微信小程序:引入阿里巴巴矢量图标库iconfont
微信小程序:引入阿里巴巴矢量图标库iconfont
908 0
|
小程序 程序员 开发者
微信小程序开发:使用字体图标的方法
在微信小程序开发过程中,图标的使用是很常见很普遍的。一般情况下,在微信小程序项目的文件目录里面images里面,可以直接引用本地的图标文件,但是通过使用字体图标或者background设置背景图的时候,就不用引用本地图标文件,只能使用根据URL链接地址的字体或者图片,再或者使用base64把普通图标编码之后的格式。
759 0
微信小程序开发:使用字体图标的方法
|
小程序 前端开发
微信小程序开发引用iconfont字体图标
微信小程序开发引用iconfont字体图标
微信小程序开发引用iconfont字体图标
|
Web App开发
微信小程序使用阿里巴巴iconfont字体图标
打开阿里巴巴iconfont官网(http://www.iconfont.cn/); 把用到的字体图标加到项目里面; 进入到项目里面,选择font class方式来使用,如果没有生成过代码的同学点生成,已经有代码的直接复制代码; iconfont.png iconfont.png 4.浏览器新建页面,把复制的代码粘贴到地址栏,回车。
1757 0
|
2天前
|
小程序 前端开发 API
微信小程序全栈开发中的异常处理与日志记录是一个重要而复杂的问题。
微信小程序作为业务拓展的新渠道,其全栈开发涉及前端与后端的紧密配合。本文聚焦小程序开发中的异常处理与日志记录,从前端的网络、页面跳转等异常,到后端的数据库、API调用等问题,详述了如何利用try-catch及日志框架进行有效管理。同时强调了集中式日志管理的重要性,并提醒开发者注意安全性、性能及团队协作等方面,以构建稳定可靠的小程序应用。
9 1
|
2天前
|
小程序 前端开发 API
微信小程序全栈开发中的多端适配与响应式布局是一种高效的开发模式。
探讨小程序全栈开发中的多端适配与响应式布局,旨在实现统一的用户体验。多端适配包括平台和设备适配,确保小程序能在不同环境稳定运行。响应式布局利用媒体查询和弹性布局技术,使界面适应各种屏幕尺寸。实践中需考虑兼容性、性能优化及用户体验,借助跨平台框架如Taro或uni-app可简化开发流程,提升效率。
8 1
|
8天前
|
小程序 JavaScript 前端开发
微信小程序开发必备前置知识:基本代码构成与语法
【8月更文挑战第8天】微信小程序的基本代码构成与语法
15 0
微信小程序开发必备前置知识:基本代码构成与语法
|
2天前
|
小程序 前端开发 数据安全/隐私保护
微信小程序全栈开发中的身份认证与授权机制是一个重要而复杂的问题。
微信小程序作为业务拓展的新渠道,其全栈开发中的身份认证与授权机制至关重要。本文概览了身份认证方法,包括手机号码验证、微信及第三方登录;并介绍了授权机制,如角色权限控制、ACL和OAuth 2.0。通过微信登录获取用户信息,利用第三方登录集成其他平台,以及实施角色权限控制和ACL,开发者能有效保障小程序的安全性和提供良好用户体验。此外,还强调了在实现过程中需注重安全性、用户体验和合规性。
5 0