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

Posted 北海的大鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uniapp中app真机模拟以及小程序编译后css样式异常失效问题原因及解决方案相关的知识,希望对你有一定的参考价值。

前言

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

比如在h5页面显示正常:

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

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、原生插件等功能

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

uni-app小程序开发踩坑记录

参考技术A 最近要从零开发一个跟后台管理系统对接的小程序,因为功能比较复杂,时间短,选择了比较火的uni-app,因为小程序出现的时间较短,各方面并不完善,开发过程中就是不断踩坑的过程,特此记录一小下。
uni-app虽然功能还不完善,但是插件市场里东西还是不少的,在搭建框架中因为需求要求借鉴了之前开发的PC端,所以有一些跟之前开发VUE相关的插件 ,可以提高开发效率,
插件:

坑:
1.覆盖原生组件,需要用cover-view容器,但是cover-view里可包含的标签有限,类似view等在真机调试时不显示,需全部替换成cover-view,且icon无法显示,可以用cover-imaga代替。
2.小程序和小程序之间的跳转(如腾讯云的人机滑动验证),跳转回来时需要进行操作,此时可以判断app.vue中的options,如果按小程序文档中来说当options.scene === 1038时是小程序跳回来的场景,但是部分手机跳回来是options.scene为1001,只能将这2种都作为跳转判断的条件。
3.小程序跳转回来app中的onshow有时不执行,这个原因暂未找到
4.在uniapp的H5版本 ,接入 腾讯云滑动验证 ,示例的点击滑动验证元素是通过dom操作的,但是无效,可能跟uniAPP不支持dom操作有关系,采用定制接入方法一,手动调用。

以上是关于uniapp中app真机模拟以及小程序编译后css样式异常失效问题原因及解决方案的主要内容,如果未能解决你的问题,请参考以下文章

uniapp怎么实现选择和上传图片分开

uni-app小程序开发踩坑记录

uniapp 小程序map地图上显示多个酷炫动态的标点,头像后端传过来,真机测试有效

怎么将apicloud转为uniapp

关于uniapp地图真机运行正常,打包后无法使用

css实现简单骨架屏skeleton;可用于App,小程序,uniapp#yyds干货盘点#