本文解决需求:app中增加设置字体大小的选项,
由于官方中并没有将 uni.$u.setConfig
更改为动态的(*至少在目前使用的 2.0.27 版本中没有 因为项目已经开发到后期了 不方便直接升级ui的版本 怕出问题所以就在原来的基础上打补丁 *) 所以会出现设置了之后 页面并没有任何变化
所以得需要重新刷新一下 相关代码如下:
在main.js中:
import uView from "uview-ui";
Vue.use(uView);
// 如此配置即可
// uni.$u.config.unit = 'rpx'
const fontSize = uni.getStorageSync("fontSize") || 24; // 设置的字体大小 全局可用
const isReLaunch = uni.getStorageSync("isReLaunch"); // 这段用于判断是不是需要页面热启动后跳转回设置页面。
if (isReLaunch) {
uni.setStorageSync("isReLaunch", false);
setTimeout(() => {
uni.reLaunch({
url: "/pages/profile/index",
});
}, 1000);
}
// 需要在Vue.use(uView)之后执行
uni.$u.setConfig({
// 修改$u.config对象的属性
config: {
// 修改默认单位为rpx,相当于执行 uni.$u.config.unit = 'rpx'
unit: "rpx",
},
// 修改$u.props对象的属性
props: {
// 修改radio组件的size参数的默认值,相当于执行 uni.$u.props.radio.size = 30
text: {
size: fontSize,
},
avatar: {
size: 80,
fontSize: 30,
},
icon: {
size: 40,
},
checkbox: {
size: fontSize + 6,
labelSize: fontSize,
},
radio: {
size: fontSize + 2,
labelSize: fontSize,
},
input: {
size: fontSize,
fontSize: fontSize - 2,
},
textarea: {
size: fontSize,
fontSize: fontSize,
},
tabbar: {
size: fontSize,
labelSize: fontSize,
},
empty: {
textSize: fontSize,
},
},
});
在设置字体大小页面中
uni.setStorageSync("fontSize", this.fontSize); // 修改的全局字体大小
uni.setStorageSync("isReLaunch", true); // 是否跳转回当前页面
// #ifdef APP-PLUS
plus.runtime.restart(); // 进行app热重启
// #endif