最近使用uniapp写app、微信小程序 ,开发的时候样式都是使用浏览器h5进行调试一切正常,但是运行到微信开发者工具或打包apk文件 真机测试时,css出现异常,本文将归纳常见的异常及解决方案。
异常一:H5显示正常但APP异常的可能性
1. 使用了不支持的选择器
- 非H5端不支持 * 选择器
2. 组件和页面样式相互影响
- 非H5端默认并未启用scoped,如果需要隔离组件样式可以在style标签增加scoped属性。
- H5端为了隔离页面或组件间的样式是默认启用了scoped,我之前就遇到过这个问题。
-
<style lang="scss" scoped ></style>
3.原生组件层级问题
- H5没有原生组件概念,非H5有原生组件并引发了原生组件层级高于前端组件的概念,想要遮挡video、map等原生组件,请使用cover-view组件。
4.1. webview浏览器兼容性
- 对Android版本进行适配。对于android 3.0以下版本,进行兼容性处理。对于android3.0以下版本放在shouldOverrideUrlLoading中的逻辑放在onPageStarted方法中去处理。
异常二:H5正常但小程序异常的可能性
1.使用了小程序不支持的选择器
- 小程序 wxss中不容许使用的选择器有 标签选择器、ID选择器、属性选择器等
2. v-html在h5和app-vue均支持
- 小程序不支持 v-html
3. 小程序要求连接的网址都要配白名单
异常三:小程序正常但APP异常的可能性
- vue页面在App端的渲染引擎默认是系统webview(不是手机自带浏览器,是rom的webview),在较老的手机上,比如Android4.4、5.0或iOS8,一些新出的css语法是不支持的。注意这不意味着不能使用flex,Android4.4也支持flex,只是不要使用太新的css。可以找Android4.4手机或使用pc模拟器实际测试下,大多数国产Android模拟器都是4.4或5.0。
- 小程序不存在浏览器兼容问题,它内置了几十M自己的定制webview。所以如果你的H5和小程序界面正常,而App界面异常,大多是因为css兼容性。
异常四:## 小程序或App正常但H5异常的可能性
1.使用了小程序专用的功能
- 比如 小程序插件、云开发 、微信卡券等
2.自定义组件的兼容性问题
- 在 uni-app 2.4.7 以前,H5端不支持微信小程序自定义组件,即wxcomponets下的组件,此时可能产生兼容问题。从 2.4.7 起,H5也支持微信自定义组件,不再存在这这方面兼容问题。
3.APP端使用了APP特有的API和功能
- 比如 plus、Native.js、subNVue、原生插件等
异常五:APP正常但小程序、H5异常的可能性
-
代码中使用了App端特有的plus、Native.js、subNVue、原生插件等功能
完整的问题及解决方案可以查看 官方文档 点击传送