uni-app设置uni.$u.setConfig uni.$u.config.unit = rpx

509 阅读1分钟

本文解决需求: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

原文链接:blog.csdn.net/weixin_4561…