让前端飞web前端技术分享WEB前端程序开发

记录 uniapp 开发中遇到的坑,遇到了就更新

2023-08-15  本文已影响0人  阿巳交不起水电费

1.tabbar 首页再次进入时不会触发onMounted、onLoad事件

问题发现: 退出登录,切换账号进入系统发现数据未更新,然后定位到生命周期中的方法未执行


image.png
image.png

2.Vconsole 在app端会打包会报错,因此需要条件编译,限制在h5环境

image.png

3.uni-file-picker 在app 端无法设置类型为“无限制”,只能指明是图片或者视频,暂时不晓得怎么解决

image.png

4.用于加密登录密码的 gm-crypt 包在app端报错,TextEncoder方法获取失败

最终是把 gm-crypt 源码复制过来,引入了text-decoding做兼容处理,并且把相关引入require方式都改为了esm方式,因为是用的vue3+vite框架

image.png

5.uni-data-picker 设置 readonly 属性 将导致无法赋值,这样回显的时候就是空。

image.png

解決办法:不使用readonly,改为使用样式禁止鼠标事件,这里加了个readonly 的类名


image.png

全局添加下列scss样式:

  // disabled 样式
  $disabledBgColor: #f5f7fa;
  $disabledFontColor: #a8abb2;
  // data-picker 的禁用
  .readonly {
    color: $disabledFontColor;
    background-color: $disabledBgColor;
    .placeholder {
      color: $disabledFontColor;
    }
  }
  // uni-data-picker 的readonly设置后,有的数据赋值不上,因此用样式处理
  .uni-data-tree.readonly {
    pointer-events: none;
    .text-color{
      color: $disabledFontColor;
    }
    .uniui-clear {
        display: none;
    }
}

关键是这行:pointer-events: none; 禁止元素对鼠标事件做出反应。
最后效果如下:

image.png

6.给 uni-forms 中 uni-easyinput 修正值不生效。

比如这里,在input事件给 val 改为了数字(你问为啥不用 type number,因为可能有其他处理)。这里使用v-model控制的值,在input事件中修正错误的值,但实际上并为生效【跟踪发现其实值是改了的,但是在表单提交的时候发现值又变成修正前的值了,应该是uni-forms内部做了监听处理,不过这个效果在这种场景是错误的,查看uniapp官网未提供修正内部值的api】


image.png

解决办法,写在nextTick里面即可:


image.png

7.android 离线打包问题

1.Android Studio要安装到c盘,也就是默认目录,不然会后面导入项目会报错,不知道怎么解决,反正直接安装到默认目录就完事。

2.导入 HBuilder-Integrate-AS 项目,在Android Studio 中报错

image.png
解决:表示jdk版本过高,降低jdk版本为jdk11,参考Unsupported class file major version 61
JDK、JRE免注册下载地址

若对你有帮助,请点个赞吧,若能打赏不胜感激,谢谢支持!
本文地址:https://www.jianshu.com/p/2eba99d78275?v=1692176460859,转载请注明出处,谢谢。

上一篇下一篇

猜你喜欢

热点阅读