We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
说明:文章待完成部分
思维导图地址:https://www.processon.com/view/link/60d49a45e401fd50b99305b1#map
H5 这个词,可以理解成就是混合 App 模型,只不过它特指混合 App 的前端部分。 因为混合 App 的前端就是 HTML5 网页,所以简称 H5。—— 阮一峰
H5 应用分为 3 种:
Web App 是使用网页做的应用程序,必须在浏览器中使用。
基本介绍
主要技术栈:
内部产品代表
混合 App (hybrid App)顾名思义就是原生 App 与 Web App 的结合。它的壳是原生 App,但是里面放的是网页。 可以理解成,混合 App 里面隐藏了一个浏览器,用户看到的实际上是这个隐藏浏览器渲染出来的网页。
混合 App 的原生外壳称为"容器",内部隐藏的浏览器,通常使用系统提供的网页渲染控件(即 WebView 控件),也可以自己内置一个浏览器内核。结构上,混合 App 从上到下分成三层:HTML5 网页层、网页引擎层(本质上是一个隔离的浏览器实例)、容器层。
API Bridge
混合 App 里面的网页不同于普通网页,可以调用底层系统所有的 API。奥秘就在于 外层容器提供了 API Bridge,充当底层 API 的中介,允许内部的网页调用底层。
所谓 API Bridge 就是容器在底层接口和网页之间,建立一座桥梁,让双方通信。容器一旦接到网页的请求,就根据请求去调用底层系统的 API,然后再返回结果给网页。API Bridge 往往以 JavaScript 语言提供,方便网页调用,这时又称为 JSbridge。
对比表格:来源 Hybrid APP基础篇(二)->Native、Hybrid、React Native、Web App方案的分析比较
产品代表
小程序,可以看作是针对特定容器的 H5 开发。微信本身是一个容器,开放自己的接口(JSbridge),外部开发者使用规定的语法,编写页面,容器可以动态加载这些页面。
当前,各个大厂都有自己的小程序:支付宝小程序,百度小程序,微信小程序等。
App 开发技术方案:
原生开发:安卓——Java技术栈,IOS——Object-C 或 Swift 技术栈。
混合开发:Web 技术栈 + 容器技术栈
跨平台技术:
对于 H5 中 Web App 的开发,采用 前端三剑客(HTML,CSS,JavaScript)技术方式实现。
在css中我们一般使用px作为单位,在桌面浏览器中css的1个像素往往都是对应着电脑屏幕的1个物理像素,这可能会造成我们的一个错觉,那就是css中的像素就是设备的物理像素。
但实际情况却并非如此,css中的像素只是一个抽象的单位,在不同的设备或不同的环境中,css中的1px所代表的设备物理像素是不同的。
在早先的移动设备中,屏幕像素密度都比较低,如iphone3,它的分辨率为 320x480,**在iphone3上,一个 css 像素确实是等于一个屏幕物理像素的。**后来随着技术的发展,移动设备的屏幕像素密度越来越高。
从iphone4开始,苹果公司便推出了所谓的Retina屏,分辨率提高了一倍,变成640x960,但屏幕尺寸却没变化,这就意味着同样大小的屏幕上,像素却多了一倍,这时,一个 css 像素是等于两个物理像素的。其他品牌的移动设备也是这个道理。例如安卓设备根据屏幕像素密度可分为ldpi、mdpi、hdpi、xhdpi等不同的等级,分辨率也是五花八门,安卓设备上的一个css像素相当于多少个屏幕物理像素,也因设备的不同而不同,没有一个定论。
还有一个因素也会引起css中px的变化,那就是用户缩放。例如,当用户把页面放大一倍,那么css中1px所代表的物理像素也会增加一倍;反之把页面缩小一倍,css中1px所代表的物理像素也会减少一倍。
在移动端浏览器中以及某些桌面浏览器中,window对象有一个devicePixelRatio属性,它的官方的定义为:
设备物理像素和设备独立像素的比例,也就是 devicePixelRatio = 物理像素 / 独立像素。
css中的px就可以看做是设备的独立像素,所以通过devicePixelRatio,我们可以知道该设备上一个css像素代表多少个物理像素。例如,在Retina屏的iphone上,devicePixelRatio的值为2,也就是说1个css像素相当于2个物理像素。
最标准的viewport设置
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
px2rem-loader
1px 处理?
使用Flexible实现手淘H5页面的终端适配 使用Flexible实现手淘H5页面的终端适配 amfe/article#17
H5 手机 App 开发入门:概念篇
原生开发、H5开发和混合开发的区别 https://juejin.cn/post/6844904008360919053
h5开发经验总结 https://wujiachen.top/2021/05/08/h5%E5%BC%80%E5%8F%91%E6%80%BB%E7%BB%93/
总结移动端H5开发常用技巧(干货满满哦!) https://juejin.cn/post/6844904066301050893?utm_source=gold_browser_extension
h5移动端常见开发总结 http://jinux.top/2021/01/28/h5%E7%A7%BB%E5%8A%A8%E7%AB%AF%E5%B8%B8%E8%A7%81%E5%BC%80%E5%8F%91%E6%80%BB%E7%BB%93/
移动端开发的几条总结 https://juejin.cn/post/6844903633037819912#heading-2
移动端h5开发相关内容总结(四) 移动端h5开发相关内容总结(四) zhiqiang21/blog#27
吃透 H5 开发 | 12种最常见的坑汇总 - 邵锁的文章 - 知乎 https://zhuanlan.zhihu.com/p/268677938
稍微整理了几个经常在H5移动端开发遇到的东西😢 https://juejin.cn/post/6844903959287562254
移动端H5页面开发坑点指南 https://juejin.cn/post/6844903976257896455
吃透移动端 H5 响应式布局 |深入原理到目前最佳实践方案 https://juejin.cn/post/6844904021552005128#heading-8
吃透移动端 1px|从基本原理到开源解决方案 https://juejin.cn/post/6844904023145857038
web移动端布局的那些事儿 https://juejin.cn/post/6844903651362734094#heading-1
大厂是怎么做移动端适配的 https://blog.csdn.net/liuyan19891230/article/details/105548875
移动端开发需要注意的 8 个方向 https://mp.weixin.qq.com/s/ah63zGv-qPI2h_FJjVrINw
移动端页面适配方案 https://blog.csdn.net/weixin_42114053/article/details/108620680
Hybrid App技术解析 -- 原理篇 https://segmentfault.com/a/1190000015678155
Hybrid App技术解析 -- 实战篇 https://segmentfault.com/a/1190000015812582
https://www.cnblogs.com/dailc/p/5930238.html
The text was updated successfully, but these errors were encountered:
No branches or pull requests
说明:文章待完成部分
什么是 H5
H5 这个词,可以理解成就是混合 App 模型,只不过它特指混合 App 的前端部分。 因为混合 App 的前端就是 HTML5 网页,所以简称 H5。—— 阮一峰
不同类型H5的特点
H5 应用分为 3 种:
Web 应用
Web App 是使用网页做的应用程序,必须在浏览器中使用。
基本介绍
主要技术栈:
内部产品代表
混合应用
混合 App (hybrid App)顾名思义就是原生 App 与 Web App 的结合。它的壳是原生 App,但是里面放的是网页。 可以理解成,混合 App 里面隐藏了一个浏览器,用户看到的实际上是这个隐藏浏览器渲染出来的网页。
混合 App 的原生外壳称为"容器",内部隐藏的浏览器,通常使用系统提供的网页渲染控件(即 WebView 控件),也可以自己内置一个浏览器内核。结构上,混合 App 从上到下分成三层:HTML5 网页层、网页引擎层(本质上是一个隔离的浏览器实例)、容器层。
API Bridge
混合 App 里面的网页不同于普通网页,可以调用底层系统所有的 API。奥秘就在于 外层容器提供了 API Bridge,充当底层 API 的中介,允许内部的网页调用底层。
所谓 API Bridge 就是容器在底层接口和网页之间,建立一座桥梁,让双方通信。容器一旦接到网页的请求,就根据请求去调用底层系统的 API,然后再返回结果给网页。API Bridge 往往以 JavaScript 语言提供,方便网页调用,这时又称为 JSbridge。
对比表格:来源 Hybrid APP基础篇(二)->Native、Hybrid、React Native、Web App方案的分析比较
产品代表
小程序
小程序,可以看作是针对特定容器的 H5 开发。微信本身是一个容器,开放自己的接口(JSbridge),外部开发者使用规定的语法,编写页面,容器可以动态加载这些页面。
当前,各个大厂都有自己的小程序:支付宝小程序,百度小程序,微信小程序等。
H5 开发
App 开发技术方案:
原生开发:安卓——Java技术栈,IOS——Object-C 或 Swift 技术栈。
混合开发:Web 技术栈 + 容器技术栈
跨平台技术:
对于 H5 中 Web App 的开发,采用 前端三剑客(HTML,CSS,JavaScript)技术方式实现。
DPR 相关
css 中的 1px 并不等于设备的1px
在css中我们一般使用px作为单位,在桌面浏览器中css的1个像素往往都是对应着电脑屏幕的1个物理像素,这可能会造成我们的一个错觉,那就是css中的像素就是设备的物理像素。
但实际情况却并非如此,css中的像素只是一个抽象的单位,在不同的设备或不同的环境中,css中的1px所代表的设备物理像素是不同的。
在早先的移动设备中,屏幕像素密度都比较低,如iphone3,它的分辨率为 320x480,**在iphone3上,一个 css 像素确实是等于一个屏幕物理像素的。**后来随着技术的发展,移动设备的屏幕像素密度越来越高。
从iphone4开始,苹果公司便推出了所谓的Retina屏,分辨率提高了一倍,变成640x960,但屏幕尺寸却没变化,这就意味着同样大小的屏幕上,像素却多了一倍,这时,一个 css 像素是等于两个物理像素的。其他品牌的移动设备也是这个道理。例如安卓设备根据屏幕像素密度可分为ldpi、mdpi、hdpi、xhdpi等不同的等级,分辨率也是五花八门,安卓设备上的一个css像素相当于多少个屏幕物理像素,也因设备的不同而不同,没有一个定论。
还有一个因素也会引起css中px的变化,那就是用户缩放。例如,当用户把页面放大一倍,那么css中1px所代表的物理像素也会增加一倍;反之把页面缩小一倍,css中1px所代表的物理像素也会减少一倍。
在移动端浏览器中以及某些桌面浏览器中,window对象有一个devicePixelRatio属性,它的官方的定义为:
设备物理像素和设备独立像素的比例,也就是 devicePixelRatio = 物理像素 / 独立像素。
css中的px就可以看做是设备的独立像素,所以通过devicePixelRatio,我们可以知道该设备上一个css像素代表多少个物理像素。例如,在Retina屏的iphone上,devicePixelRatio的值为2,也就是说1个css像素相当于2个物理像素。
为什么移动端设计稿总是640px和750px
移动端常见的布局方案:
viewport 设置
最标准的viewport设置
布局方案
px2rem-loader
等工具的辅助。项目开发注意问题
1px 处理?
参考资料
使用Flexible实现手淘H5页面的终端适配 使用Flexible实现手淘H5页面的终端适配 amfe/article#17
H5 手机 App 开发入门:概念篇
原生开发、H5开发和混合开发的区别 https://juejin.cn/post/6844904008360919053
h5开发经验总结 https://wujiachen.top/2021/05/08/h5%E5%BC%80%E5%8F%91%E6%80%BB%E7%BB%93/
总结移动端H5开发常用技巧(干货满满哦!) https://juejin.cn/post/6844904066301050893?utm_source=gold_browser_extension
h5移动端常见开发总结 http://jinux.top/2021/01/28/h5%E7%A7%BB%E5%8A%A8%E7%AB%AF%E5%B8%B8%E8%A7%81%E5%BC%80%E5%8F%91%E6%80%BB%E7%BB%93/
移动端开发的几条总结 https://juejin.cn/post/6844903633037819912#heading-2
移动端h5开发相关内容总结(四) 移动端h5开发相关内容总结(四) zhiqiang21/blog#27
吃透 H5 开发 | 12种最常见的坑汇总 - 邵锁的文章 - 知乎 https://zhuanlan.zhihu.com/p/268677938
稍微整理了几个经常在H5移动端开发遇到的东西😢 https://juejin.cn/post/6844903959287562254
移动端H5页面开发坑点指南 https://juejin.cn/post/6844903976257896455
吃透移动端 H5 响应式布局 |深入原理到目前最佳实践方案 https://juejin.cn/post/6844904021552005128#heading-8
吃透移动端 1px|从基本原理到开源解决方案 https://juejin.cn/post/6844904023145857038
web移动端布局的那些事儿 https://juejin.cn/post/6844903651362734094#heading-1
大厂是怎么做移动端适配的 https://blog.csdn.net/liuyan19891230/article/details/105548875
移动端开发需要注意的 8 个方向 https://mp.weixin.qq.com/s/ah63zGv-qPI2h_FJjVrINw
移动端页面适配方案 https://blog.csdn.net/weixin_42114053/article/details/108620680
Hybrid App技术解析 -- 原理篇 https://segmentfault.com/a/1190000015678155
Hybrid App技术解析 -- 实战篇 https://segmentfault.com/a/1190000015812582
https://www.cnblogs.com/dailc/p/5930238.html
The text was updated successfully, but these errors were encountered: