前言

最近写使用uniapp写app,开发的时候写样式都是使用浏览器h5进行调试一切正常,但是最后进行手机真机调试的时候css样式出现了异常,本文归纳常见的问题

比如在h5页面显示正常:

uniapp中app真机模拟以及小程序编译后css样式异常失效问题原因及解决方案

但是在真机调试app的实现则显示:

uniapp中app真机模拟以及小程序编译后css样式异常失效问题原因及解决方案

H5正常但App异常的可能性

  1. 使用了不支持的选择器
    非H5端不支持*选择器;
  2. 组件和页面样式相互影响
    非H5端默认并未启用 scoped,如需要隔离组件样式可以在 style 标签增加 scoped 属性,H5端为了隔离页面间的样式默认启用了 scoped。我之类就是这个问题导致的。
  3. webview浏览器兼容性
  4. 原生组件层级问题 H5没有原生组件概念问题,非H5端有原生组件并引发了原生组件层级高于前端组件的概念,要遮挡video、map等原生组件,请使用cover-view组件。

H5正常但小程序异常的可能性

  1. 同上
  2. v-html在h5和app-vue均支持,但小程序不支持
  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。

小程序或App正常,但H5异常的可能性

  1. 在 uni-app 2.4.7 以前,H5端不支持微信小程序自定义组件,即wxcomponets下的组件,此时可能产生兼容问题。从 2.4.7 起,H5也支持微信自定义组件,不再存在这这方面兼容问题。
  2. App端使用了App特有的API和功能,比如plus、Native.js、subNVue、原生插件等
  3. 使用了小程序专用的功能,比如微信卡券、小程序插件、微信小程序云开发。对于云开发,建议使用可跨端的uniCloud。

App正常,小程序、H5异常的可能性

代码中使用了App端特有的plus、Native.js、subNVue、原生插件等功能

完整的问题及解决办法可查看官方文档 传送门

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。