cover_image

HTML5网站的多端对接技术实践

爱康技术团队
2024年11月07日 09:39

图片

HTML5是构建Web内容的一种语言描述方式,HTML5是互联网的新一代标准,是构建以及呈现互联网内容的一种语言方式,被认为是互联网的核心技术之一。
H5技术网站通过采用响应式设计、灵活的布局方案和媒体查询技术,实现了多端适配,确保在不同设备上都能提供流畅一致的用户体验。

图片

一、H5技术的优缺点

1、H5技术的核心优势,主要包括了跨平台性,多设备兼容,多媒体丰富,交互性强,允许web应用在离线时使用本地存储,代码更容易维护和更新,接近原生应用的高性能

2、H5技术也存在了一点缺点,包括了安全性问题老版本浏览器的兼容性问题,处理复杂交互和大量数据时的性能问题维护和更新成本高,搜索引擎优化方面也存在不足。

二、H5网站设计

1、响应式设计

视窗(Viewport):在移动设备上,视窗(viewport)是一个重要的概念,它决定了页面的显示尺寸和缩放比例。通过设置,可以控制页面在不同设备上的显示效果。

设备像素比(Device Pixel Ratio,dpr):dpr定义了物理像素和设备独立像素的对应关系,通过JavaScript中的window.devicePixelRatio获取当前设备的dpr,可以在CSS中通过媒体查询针对不同dpr的设备进行样式适配。

rem单位:使用rem单位可以相对根元素的font-size来计算元素的盒模型大小,从而实现不同设备上的等比例缩放。

图片

2、灵活的布局方案

Flex布局:Flex布局是一种现代的布局方式,可以自动调整子元素的宽度和高度以适应父容器的大小,从而实现响应式布局。

栅格系统:利用Bootstrap等框架的栅格系统来处理列表和布局,可以更高效地实现多端适配,栅格系统的基本组成部分包括以下三个主要元素:

Container:用于包裹整个栅格系统的容器,可以分为固定宽度或流体布局(自适应屏幕宽度)。

Row:栅格行,用于包含列元素,并确保列在水平排列时正确对齐。

Col:栅格列,负责实际内容的显示,每一行最多可以包含12列。

3、媒体查询技术

媒体查询:通过CSS中的媒体查询,可以根据不同的屏幕尺寸应用不同的样式,从而实现多端适配。例如,针对小屏设备隐藏侧边栏或调整字体大小,以优化用户体验。

4、图片和资源的适配

自适应图片:使用自适应图片技术,如通过srcset属性为不同分辨率的设备提供不同大小的图片资源,以确保图片在不同设备上都能清晰显示。

图标字体(Iconfont):使用图标字体(如阿里巴巴矢量图标库)代替传统的图片图标,可以避免因图片尺寸不合适而导致的显示问题。

雪碧图(Sprites):主要用于把一堆小图标,整合在一张背景透明的大图上,通过设置对应的位置来显示不同的图片,目的是大幅减轻服务器对图片的请求数量,是前端性能优化的一种方式。

三、H5网站开发模式

1、原生开发

原生开发是指直接使用HTML5、CSS3和JavaScript等技术来开发适用于浏览器的应用或游戏。

2、混合开发

混合开发结合了Web技术和原生应用的优势,使用框架(如Cordova、PhoneGap、React Native、UniApp)将H5应用封装成原生应用。

3、框架开发

MVC框架:MVC框架是Model-View-Controller的缩写,是前端开发中最常用的架构模式之一。H5开发中,MVC框架能够将数据模型、视图和控制器三者分离,使代码结构清晰,便于管理和维护。其中,Model负责数据处理,View负责数据显示,Controller作为桥梁连接ModelView,处理用户交互。

MVVM框架:MVVMModel-View-ViewModel的缩写,它在MVC的基础上进一步抽象了视图与模型之间的交互。MVVM框架中,ViewModel之间的交互通过ViewModel来进行,ViewModel负责处理用户交互和数据的转换。这种框架模式使得数据绑定更加简单直观,提高了开发效率和代码可维护性。

组件化框架:随着前端工程化的不断发展,组件化开发逐渐成为主流。H5开发中常用的组件化框架有ReactVue等。这些框架提供了丰富的组件库和工具,支持开发者快速构建复杂的单页应用。组件化开发可以提高代码复用性,降低维护成本,并有利于团队协作。

四、APP/H5内部嵌入三方应用的H5实现

在APP安卓端、iOS端、鸿蒙端、H5端的内部,就存在了很多嵌入其他用户端H5网站,实现了免密唤起H5,从而提供更便捷的服务,在APP的安卓、iOS、鸿蒙三端基于WebView的形式嵌入,H5端采用iFrame的形式嵌入。

图片

在实现对接的过程中也遇到了一些技术上的问题,以下主要列举了一些常见问题和在实际开发过程中的解决方案:

1、iOS环境下点击事件无法触发

详细描述:在iOS/Safari环境里H5中非button类型元素(div、span等)绑定click事件,触发不灵敏(有时一次成功、有时需点击多次、甚至失效)。

问题产生原因:浏览器内核之间的兼容区别。

解决方法:给目标元素加一条样式规则,如下图所示

图片

2、Android、iOS端H5网站拍照上传和本地上传图片/文件失败

详细描述:Android、iOS获取相机和读取文件权限授权问题。

解决方法:Android、iOS两端提供读取设备权限的方法。

图片

3、H5中弹窗显示错位问题

详细描述:在H5网站中使用van-popup作为弹窗组件时,其默认渲染层级为文档流,在当前组件内如果存在定位或层级设置时会显示错乱。如图所示:

图片

解决方法:弹出层默认挂载到组件标签所在位置,可以通过 teleport 属性指定挂载位置。

图片

4、爱康H5通过iframe打开H5网站后,点击返回时返回路径有误

详细描述:在爱康H5中,使用iframe打开内嵌的H5网站后,在H5内部的二级页面点击或调起返回时,错误的返回到了爱康H5来源页,而不是H5内部的来源页。

解决方法:给iframe标签中,增加一个自定义的属性,如下图所示,添加key属性用于记录,即可以解决当前的问题。

图片

综上所述,H5网站通过综合运用响应式设计、灵活的布局方案、媒体查询技术、图片及静态资源适配等多种策略,成功实现了多端适配。这些策略不仅提高了开发效率,还能够确保用户在不同设备上都能获得一致且优质的体验。

图片

继续滑动看下一个
爱康技术团队
向上滑动看下一个