uni-app开发问题总结(小程序与h5)2:兼容性

2023-05-16

前端时间连着开发了俩个项目,都是在线教育类的,uni-app架构,一套代码兼容移动端h5+小程序。碰到一些兼容性问题,这里做个记录:

一、默认使用uni-app创建的css

有个默认引用的css(uni.css),里面是一些uni- 标签用到的默认css;

其中有个

view{
	font-size:32upx;
    line-height:1.4
}

这个line-height的默认会在某些特殊情况下影响你的样式,记得删掉或者是在我们的view里给上这个属性。

二、一套css兼容很多配置需要细心

uni-app自带的upx会自适应,但在ipad,或者更大的尺寸是就会发现,字体,行距,会越来越大,样式上会变得很丑;

我的解决方案是:

1.横向布局用百分比与flex布局,尽量不用upx;

2.全局的字体大小等用px;

3.竖向布局行距等用px,其他自动撑开;

即便是这样,在测试了很多款手机(安卓和ios)+ (自带,uc,微信,qq,谷歌)等多款浏览器,依然会发现某些个别的手机样式错乱,这个时候需要单独再调试,像我的这个发生在ipone8的微信浏览器上

三、声音Audio

uni-app官方推荐let innerAudioContext = uni.createInnerAudioContext();的这种写法,实测,在华为手机自带浏览器+安卓手机的uc浏览器会出现bug,导致无法自动播放,播放后无法播放第二次。。。,在小程序里bug相对较少,毕竟平台微信已经做了统一;

我的解决方案是:

1.做了条件编译,在小程序用之前let innerAudioContext = uni.createInnerAudioContext();这一套,在h5用下面这一套:

this.innerAudioContext = new Audio()
this.innerAudioContext.src = that.src
this.innerAudioContext.play()

通过UI设计让芜湖触摸或者点击,来达到无感知的自动播放效果,经测试完美实现所需效果;

四、swiper组件

默认的组件是这样的

<swiper class="swiper" :current="current" skip-hidden-item-layout="true" :indicator-dots="indicatorDots" @change="currentChange"
					indicator-active-color="#2CC0D6">
					    <swiper-item v-for="(item,index) in examList" :key="index">
</swiper-item>
</swiper >

测试,在安卓手机正常,ios出现滑动错乱的问题;

我的解决方案是:

1.js判断是否为ios,若不是,采用原来的;若是,弃用swiper,放弃滑动效果,改用按钮点击实现;

最后,我想说的是,由于前端的技术更新太快,而且安卓,ios,浏览器的各种兼容性问题,在实现一套代码兼容所有平台的路上目前还没有技术能够做到成熟,都是在摸索的路上,uni-app也一样,不过它确实在一定程度上缓解的代码开发工作,比如之前同样的样式,逻辑,我需要先用wepy开发小程序,在用普通的vue开发h5,现在直接用uni-app一套代码开发,上线两端,代码量减少,效率增加,上手也快,希望未来,能有更多像这样的统一兼容框架能够出来。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

uni-app开发问题总结(小程序与h5)2:兼容性 的相关文章

  • 音乐——时间煮雨

    歌手 xff1a 郁可唯 作词 郭敬明 落落 作曲 刘大江 武部聡志 编曲 黄毅 风吹雨成花 时间追不上白马 你年少掌心的梦话 依然紧握着吗 云翻涌成夏 眼泪被岁月蒸发 这条路上的你我她 有谁迷路了吗 我们说好不分离 要一直一直在一起 就算
  • 物理机安装 Ubuntu18.04 + CUDA + Anaconda (简明图文教程)

    安装过程 xff08 1 xff09 安装 Ubuntu1 1 安装 ultraiso1 2 下载 ubuntu 18 4 系统1 3 制作U盘启动盘1 4 安装操作1 5 磁盘格式化和挂载 xff08 2 xff09 安装 CUDA 环境
  • WinForm界面开发教程——图文并茂的界面设计

    DevExpress WinForm v20 2完整版下载 DevExpress技术交流群3 xff1a 700924826 欢迎一起进群讨论 DevExpress WinForms拥有180 43 组件和UI库 xff0c 能为Windo
  • jdk8——字符串数组按照指定要求分组后取最大值

    要求 xff1a 如下月份数据 xff1a 34 20220901 34 34 20220912 34 34 20220923 34 34 20220929 34 34 20221010 34 34 20221101 34 34 20221
  • https证书识别和转换

    1 证书识别 xff1a 安全证书如下 xff1a BEGIN CERTIFICATE END CERTIFICATE 普通私钥如下 xff1a BEGIN PRIVATE KEY END PRIVATE KEY RSA 私钥如下 xff1
  • svn 常用命令

    svn简介 xff1a Subversion SVN 是一个开源的版本控制系統 也就是说 Subversion 管理着随时间改变的数据 这些数据放置在一个中央资料档案库 repository 中 这个档案库很像一个普通的文件服务器 不过它会
  • 浏览器的知识

    1 浏览器可视窗口大小 43 获取浏览器可视窗口的大小 43 语法 61 gt window innerWidth 61 gt window innerHeight 43 注意 获取的是包含滚动条在内的尺寸 MAC 除外 console l
  • C# winform中 窗体缩放自适应的方法(不同电脑/不同分辨率)

    窗体缩放是一个困扰我多时的问题 xff0c 为了解决这个问题 xff0c 我从网上找了很多相关的资料 xff0c 很多人说用Anchor和Dock属性 xff0c 但是我试了以后 xff0c 始终不能达到想要的效果 后来 xff0c 搜到了
  • Spyder闪退、启动失败的解决办法。UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xa9 in position 226······

    Spyder版本号 Spyder5 1 5 Python 3 9 12 1 闪退时的现象 早上还在用spyder分析数据 xff0c 到下午再打开电脑就发现spyder闪退 xff0c 利用anaconda的prompt进行启动 xff0c
  • IT项目经理如何正确做好项目实施

    本文摘自 光环国际 中国项目管理PMP培训上市企业 对自己的能力有清晰认识 xff1a 局限 你需要客观的评价自己的长处和短处 xff0c 并且着手缩小自己的差距 做软件的人常常被认为缺乏出色的交际能力 你需要加强你的人际处理能力 xff0
  • 解决Centos/Mysqld 重启或关机时间慢问题

    项目场景 xff1a 提示 xff1a centos 8测试环境中 xff0c 将通过二进制安装的服务添加到systemd服务管理中 xff0c 并对其进行测试 xff0c 看是否能满足线上需求 xff0c 即开机自动启动 由于添加到sys
  • You don‘t have enough free space in /var/cache/apt/archives

    在执行 sudo apt install 来安装一些包时候遇到过这个问题 xff0c 网上查了很多资料 xff0c 很多简单粗暴的解决方案如下 xff1a span class token function sudo span apt au
  • mysql创建超级用户,更新用户权限

    insert into user Host User Password Select priv Insert priv Update priv Delete priv Create priv Drop priv Reload priv Sh
  • VNC端口被占用:a vnc server is already running as

    其实这些端口可能是以前的一些用户占用的 当他们离开这太服务器的时候并没有释放资源 后来在网上查找 xff0c 才找到了杀死这些进程的方法 其实每个端口都是vncserver的一个进程 1 所以我们使用 ps ef grep vnc 就能查到
  • 【图像处理】C++实现模板匹配

    预先判断 3 3十字中心 区域是否相似 xff0c 如果相似 xff0c 则再匹配判断 这样可以减少判断次数 前提 xff1a 模板大于9 9 BOOL Judgement BYTE pTempDataBuf BYTE pTemplateB
  • CPython的命令行与python文件的执行

    在Windows系统中 xff0c 下载并安装了Python解析器后 xff0c 就可以运行Python文件了 可以使用任何编辑器 xff0c 编写并保存Python文件 Python运行时提供了多种执行Python文件的方法 1 编写并保
  • Java运行时的shutdown hook

    Hook作为一种回调方式 xff0c 广泛应用于软件中 从Java 1 3开始 xff0c JVM的Runtime也提供了hook的机制 xff0c 即shutdown hook 提供给出shutdown hook xff0c 在退出JVM
  • Apache Maven Resources Plugin插件详解

    Apache Maven Resources Plugin是Apache Maven团队提供的官方核心插件 xff0c 能够将Maven项目中的各种资源文件复制到指定的输出目录中 1 在Maven项目中的资源可以分为两类 main资源 xf
  • TestNG测试的并发执行详解

    TestNG在执行测试时 xff0c 默认suitethreadpoolsize 61 1 xff0c randomizesuites 61 false xff0c 即非并发顺序执行测试 但是TestNG提供了多种方式 xff0c 以支持测
  • Maven的pom.xml文件结构之Build配置build

    在Maven的pom xml文件中 xff0c Build相关配置包含两个部分 xff0c 一个是 lt build gt xff0c 另一个是 lt reporting gt xff0c 这里我们只介绍 lt build gt 1 在Ma

随机推荐

  • Docker容器的重启策略及docker run的--restart选项详解

    1 Docker容器的重启策略 Docker容器的重启策略是面向生产环境的一个启动策略 xff0c 在开发过程中可以忽略该策略 Docker容器的重启都是由Docker守护进程完成的 xff0c 因此与守护进程息息相关 Docker容器的重
  • docker run的--rm选项详解

    在Docker容器退出时 xff0c 默认容器内部的文件系统仍然被保留 xff0c 以方便调试并保留用户数据 但是 xff0c 对于foreground容器 xff0c 由于其只是在开发调试过程中短期运行 xff0c 其用户数据并无保留的必
  • Spring Boot的Maven插件Spring Boot Maven plugin详解

    Spring Boot的Maven插件 xff08 Spring Boot Maven plugin xff09 能够以Maven的方式为应用提供Spring Boot的支持 xff0c 即为Spring Boot应用提供了执行Maven操
  • Django项目与Django应用的关系及django.apps模块

    1 Django项目与Django应用 Django项目通常是使用django admin工具创建的项目结构 xff0c 执行如下命令创建Django项目myproject xff1a django admin startproject m
  • Gradle-7.0.3 build.gradle字段有改变

    如果你使用最新的 Gradle 7 0 3 build gradle文件里 defaultConfig 作用域内个别字段有变化 defaultConfig span class token punctuation span applicat
  • Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean异常解析

    Spring Boot升级到2 0 1 xff0c 再次按照其官网的Quick Start做了一下上手练习 xff0c Maven构建成功 xff0c 但是启动应用总是报错如下 xff1a Unable to start ServletWe
  • Spring Boot 2.0中嵌入式Web容器(如Tomcat)对HTTP2的支持详解

    Spring Boot应用往往作为服务发布 xff0c 这里对HTTP2的支持 xff0c 主要是对通过嵌入式Web容器支持HTTP2 1 在最新的Spring Boot 2 0 3 RELEASE中 xff0c 集成的三种嵌入式Web容器
  • Spring Cloud OpenFeign详解

    作为Spring Cloud的子项目之一 xff0c Spring Cloud OpenFeign以将OpenFeign集成到Spring Boot应用中的方式 xff0c 为微服务架构下服务之间的调用提供了解决方案 首先 xff0c 利用
  • Docker容器支持IPv6的方法

    1 设置Docker Engine支持IPv6 1 启动Docker Engine时即开启对IPv6的支持 默认启动时Docker Engine只支持IPv4 启动Docker Engine时 xff0c 指定 ipv6选项即可支持IPv6
  • 总线带宽计算公式(解析)

    总线带宽 xff1a 一定时间内总线上可以传输的数据量 xff0c 使用MByte s表示 总线位宽 xff1a 总线能同时传送的数位数 xff0c 使用bit表示 xff08 常见的如32位 xff0c 64位 xff09 总线频率 xf
  • macOS终端命令行配置网络代理

    一 前言 xff1a 在下载一些需要vpn下载公司内网的源码或者认证时 xff0c 必不可少的需要使用代理 xff0c 与普通的网页及应用代理不同 xff0c 在mac的终端中并没有开启默认的代理模式 xff0c 所以需要手动进行设置 xf
  • VUE源码浅读

    首先我们要知道vue代码如何运行的 xff1f 初始化及挂载 61 gt 编译 xff08 parse optimize generate xff09 61 gt render function渲染 xff08 响应式 xff09 61 g
  • 一文解决Vue2过渡Vue3痛点

    项目升级vue3 0总结 醉逍遥neo的博客 CSDN博客 升级项目vue版本
  • 前端vue需求:将当前页面转成图片或者PDF并下载

    一 xff0c 下载依赖并引用 npm install html2canvas jspdf import html2canvas from 34 html2canvas 34 import jsPDF from 34 jspdf 34 二
  • react数据之dispatch,reducer

    1 之前写了一篇fetch的简单用法 xff0c 实际项目中数据比那个要复杂 xff0c 下面看一下通过dispatch和reducer来控制数据的更新 xff1b 2 还是以上一个添加分组的组件为例 xff1a 首先我们写一个MoveGr
  • 定时器/计数器介绍

    第一次在学习定时器的时候模模糊糊 xff0c 在做过一些题目之后对定时器有了更新的理解 xff0c 现在整理一下 xff0c 做笔记使用 目录 一 基础知识 定时器的作用 xff1a 定时器的实质 xff1a 定时器的工作原理 xff1a
  • echarts图表大小自适应

    1 还是我上一篇echarts简单使用的例子 xff1a 如果是随windows的width和height自适应的话 xff0c 如下 xff1a var echartsWarp 61 document getElementById 39
  • audio自动播放完美兼容实现方案

    前述 xff1a 最近解决的一个疑难杂症 xff0c 是关于audio自动播放与监听audio加载完成在ios上的兼容性问题 xff0c 其表现为pc xff0c 安卓谷歌浏览器正常 xff0c ios微信 xff0c 谷歌浏览器不正常 需
  • uni-app开发流程一(项目搭建)

    uni app其实是DCloud推出的众多产品之一 xff0c 当然我只研究目前能用到的 DCloud的官网 xff1a https www dcloud io uni app的官网 xff1a https uniapp dcloud io
  • uni-app开发问题总结(小程序与h5)2:兼容性

    前端时间连着开发了俩个项目 xff0c 都是在线教育类的 xff0c uni app架构 xff0c 一套代码兼容移动端h5 43 小程序 碰到一些兼容性问题 xff0c 这里做个记录 xff1a 一 默认使用uni app创建的css 有