今天要写个uniapp的移动端项目,底部tabBar需要添加图标,以往都是以图片的形式引入,但是考虑到不同甲方的主题色也不会相同,使用图片的话,后期变换主题色并不友好,所以和UI商量之后,决定使用iconfont阿里巴巴矢量图标库。
想着就是需要简单的引入图标即可,但万万没想到,uniapp的坑,让我猝不及防,好在摸索了大半天,总算有个好的结果,为了记录这次跌倒的坑,决定写下来,希望能帮到其他人。
不过丑话说前面,每个人报错的原因都不一定相同,请自己进行排查错误之后,再针对性参考别人的意见,当然,代码这东西很玄学,有的时候,什么都对,就是出不来,也不是没有可能的。

  1. 在iconfont图标库选择自己需要用的图标,地址
    ,打包下载至本地,放在static文件夹中,注意,我没有去调整css文件里相对路径或者在线地址什么的,(因为调整之后变成小方块了,图标啥也不显示),就打包下来有什么文件就放什么文件就行了
  2. 避坑如下:在pages.json文件中
"tabBar": {
    "color": "#000000",
    "selectedColor": "#000000",
    "borderStyle": "white",
    "backgroundColor": "#ffffff",
	"iconfontSrc": "/static/icon/iconfont.ttf",//注意这里!!!!一定要在tabBar里,与list同级的位置引入iconfont的src,从static开始写!!!!!!!!
    "list": [{
        "pagePath": "pages/index",
		"iconfont": {
			"text": "\ue604",//这里也需要注意,使用的是iconfont里的Unicode类型下的代码标识,但是!引入时,需要将&#x改为\u,否则无法识别
			"selectedText": "\ue604",
			"color": "#e6e6e6",
			"selectedColor": "#07C160"
		},
        "text": "首页"
      }, {
        "pagePath": "pages/fillingList/index",
        "iconfont": {
        	"text": "\ue605",
        	"selectedText": "\ue605",
        	"color": "#e6e6e6",
        	"selectedColor": "#07C160"
        },
        "text": "旅游"
      }, {
        "pagePath": "pages/mine/index",
        "iconfont": {
        	"text": "\ue677",
        	"selectedText": "\ue677",
        	"color": "#e6e6e6",
        	"selectedColor": "#07C160"
        },
        "text": "个人"
      },
    ]
  },

icon图标显示小方块,搜索了很多文档说需要将iconfont.css文件里的src改为绝对路径啥的,我不知道为啥,按照他们的改了之后,不报错,也出不来。回归了原始的代码之后,iconfont的原文件,我什么都没改,就是需要注意下iconfontSrc的书写位置和地址引入问题,以及代码标识前缀改为\u
完美~
收工!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐