小程序中布局突然乱掉了,到底是怎么个情况?
就在上周,突然很多用户反馈,都说小小签到布局乱掉了(线上有四款小程序都收到这样的反馈,这里我就不广告了),经过客服反复沟通,找到了布局乱掉的必现条件:
1、IOS用户较多,系统版本为8.X,很难升级(iPhone 5 & 5S);
2、部分页面布局乱掉,这些页面都用到了flex布局(反复排查之后,怀疑跟flex布局有关系);
3、之前使用正常,小程序新发布后就乱掉了;
4、最近发布过新代码;
先看个截图:
巧的是,微信web开发工具也在前不久从0.X版本升级到了1.X版本,整个UI改动比较大,这里不细说~
出现这么严重的问题,那肯定是先回滚代码,回滚后用户那边就显示正常了,说明肯定是代码的问题。
对比代码之后,发现新代码中主要是添加了一些CSS3的动画。难道是CSS3某些动画不支持?索性就把动画代码全部去掉,用5S测试机运行一下,依然乱码。
然后把flex布局修改成float实现,发现布局正常,但是工作量太大,之前的代码中多列布局,全部用的flex实现。所以,继续查找问题~
两次代码基本一样,但提交后效果却不一样,为什么?我开始怀疑是开发工具的问题了,因为开发工具从0.x突然升级到了1.X,整个改动很大,难道是提交的时候,代码压缩的方式不对?或者我发布代码的姿势不对?
最终发现了问题,确实是开发工具里面压缩代码时,默认勾选项目发生了变化,默认情况下“上传代码时样式自动补全”并未选中,如下:
勾选这个选项后,再次发布代码,布局就正常了。
然后我又去网上查了一下flex布局在ios 8.x上不兼容的处理,大部分回复都是说要添加前缀:
display:-webkit-box;
display:-webkit-flex;
display:-ms-flexbox;
dispiay:flex;
之前用flex布局,是因为文本宽度会根据内容多少而发生变化,这一点儿让人特别不爽~
顺便再说一个另一个同学提的问题:为什么获取手机号getPhoneNumber(OBJECT)API调用报错?
凡是遇到这种问题,首先是看小程序官方文档,如果还解决不了,就去社区上查找~
社区上已经有官方人员回复了,获取手机号功能,不对个人开发者开放,并且前端没办法直接拿到手机号,需要到服务端去解密。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android仿Keep运动休息倒计时圆形控件
- android通过led实现手电筒功能
- Android 7.0 手电筒控制实现
- 【STM32H7】第13章 RL-TCPnet V7.X之创建多个TCP客户端
- Android倒计时的开始与停止 剩余时分秒的展示
- 由LFI引起的Zimbra邮件管理系统0day
- Android手电筒兼容各个手机与版本
- 【STM32F429】第13章 RL-TCPnet V7.X之创建多个TCP客户端
- RecyclerView仿应用列表实现网格布局
- Android实现带进度条的WebView
- Android实现记住密码功能
- 【- Flutter Web篇 -】 FlutterUnit web版闪亮登场
- Android简单实现弹幕效果
- 实现 Base64 的编码解码
- Android实现底部导航栏的主界面