APP封装从一门开始
一门提供APP封装底层开发框架,一键在线APP封装,200+原生APP模块,2000+JS映射接口按需自助封装

使用h5进行混合app开发

H5(HTML5)是HTML最新的版本,它加强了在移动端的支援,有更好的体验、优化更适合移动端的Web应用程序。混合开发指的是在一个native的应用容器中,通过嵌入webview,将H5页面作为应用的一部分或者是全部,达到类似native应用的体验。下面为大家详细介绍H5进行混合app开发的原理。

## 1.前言

移动端开发中,App应用成为主流,而对于不依赖于硬件和系统融合的应用(如:社交、新闻、直播等),代码形式非常类似的WebView内嵌页面也成为了越来越多的选项。此时使用H5进行混合开发可以发挥特别的优势。

## 2. H5进行混合app开发原理

混合App开发,就是将Html5应用或网站包装为App可安装的形式,并在应用市场进行发布。在混合App开发中,H5页面是以WebView的方式展现的,WebView是Android系统提供的一个可直接嵌入页面的组件。WebView的好处是,可以通过非常简单的方式将H5页面嵌入到移动应用中并展现给用户,多数情况下实现的是集成HTML+CSS+JS三项技术的功能的包装。在WebView中,可以通过WebChromeClient与Js通信,完成页面功能的事件处理。

三项技术:

- Html5:HyperText Markup Language,也就是大家常听到的HTML。

- CSS:Cascading Style Sheets,是一种用于描述HTML等文档元素外观的语言。

- JS:JavaScript是一种面向对象的、动态的解释型计算机语言。

## 3.实现步骤

### 3.1 构建app内框架

针对Hyrbid App,则需要在Native应用(如IOS)上嵌入一个浏览器界面以调出具备业务逻辑运算能力的Webview。具体如何呷成需要用app框架方案,比如ReactNative,Ionic等。

### 3.2 页面管理

无论使用ReactNative还是其他框架,可以考虑采用单页面的方式进行页面之间的切换。前端也可以自主维护一套类似于路由的方案。

### 3.3 Native API调用

H5需要在Native App内调用某些原生的功能,这就存在一些安全性和可行性的问题。有专门的插件方案和原生桥接库的解决方法。常见的如Phonegap、Cordova、JPush Phonegap plugins,百度等。

举个栗子:

我们现在用的`window.location.replace`是属于JS里面的内部方法,它负责内部的页面跳转,但如果我们要访问到内部的native能力,就需要调用额外定义的API,比如第三方分享调用、拍照上传和调用原生地图等,这就需要调用到原生的能力了。很多案例使用JS将这些API封装到桥接库里面,这样调用的时候只需要执行如下代码:

```js

window.hackUtilsAPI.share({});

```

或者实际项目当中一些各种原生业务 JS 的业务复杂和难度就会大大降低。实现通信连接的方案有很多,主流的有:

1. Cocos2d-x自带的jsb库

2. WebView与native的的通讯方案

3. Phonegap的相关插件:PhoneGap在Javascript API与原生 API之间提供了一个桥接层,让HTML/CSS/JavaScript的应用程序能够访问手机的一些硬件设备和其他原生API的能力,如:Camera、Network、Acceleromete。

### 3.4 总体架构

H5与壳程序,以WebView应用为桥,两端通过协商好的方法进行数据交互,并得到原来的显著跨平台的能力。

## 4. 混合App优缺点

### 4.1 优点

- 跨平台:H5页面只需要编写一次,重新进行封装移植后即可同步在各个平台上面运行。

- 开发效率高:采用简单的html+js开发,不用像原生开发那样熟练掌握各种语言,所以开发效率提高很多。

- 更新方便:H5页面可以分离出去,单独发布,方便修改和发布,节省了重复编译和重新发布整个App的时间和流程。而原生更新完需要等待市场审核,并上线更新。

- 用户变现:使用H5页面进行混合开发时,可以通过增加广告或与项目的合作赚钱,发挥H5页面自身变现的优势。

- 兼容性较好:HTML5 的语法编写很多兼容性的方便处理,而且浏览器普及度也非常的高,可兼容性一般不会有问题。

### 4.2 缺点

- 用户体验和性能不如原生:H5页面在WebView内进行展示,与native程序进行比较出现各种问题,比如滑动卡顿,CPU占用率高,启动速度慢等。

- 编写难度较大:相比原生来说编写难度较大,前期难度很大。

- 安全性差:H5页面的开源和发布过程导致安全性差。

- 打包时开销增加:混合app需要在原生语言的基础上嵌入一些其他库以供使用,造成app包体积增大。

## 5. 总结

H5进行混合app开发,相比原生开发具有一系列的优势和劣势。在实际操作中,我们需要对当前项目需求做出完善的分析和需求,来选择最优的开发方式和工具。H5进行混合app开发虽然整体难度大,但适用范围广,开发效率高,适合一些轻度交互和动画类的应用,可以减小视频体量,同时业务逻辑不复杂的项目。总


相关知识:
用h5开发的app想接入支付宝
在使用H5开发的App中,我们通常需要考虑接入支付宝支付功能。支付宝是目前国内最为流行的一种第三方支付平台,通过接入支付宝支付,用户可以方便地进行在线付款。那么在使用h5开发app中接入支付宝支付该怎么做呢?首先,我们需要了解支付宝的支付流程。支付宝支付主
2023-05-26
免费的h5 长图制作软件app
在当今社交媒体时代,制作一张长图已成为许多人必备的技能。当我们需要在社交网络上发布一个成功的营销推广图或分享一篇故事时,我们需要一款免费的、易用的h5长图制作软件。今天,我将介绍一些免费的h5长图制作软件,让你在不需要任何技能或花费任何钱的情况下,就可以创
2023-05-26
开发app还是h5网站好
开发app还是H5网站好,这是一个比较常见的问题,也是一个值得探讨的问题。本文将会从原理和实际应用的角度详细介绍这个问题。首先,我们需要明确app和H5网站的概念。App是指基于移动设备的应用程序,需要用户下载安装后才能使用。而H5网站则是基于HTML5技
2023-05-26
本地封装h5与app的区别
本地封装H5和APP的区别有很多。本地封装H5是将网页文件封装成一个应用程序,可以在移动端安装并使用,但它本质上是一个基于网络的应用程序,而APP则是本地应用程序。下面我们将详细介绍本地封装H5和APP之间的几个主要区别。1. 应用程序大小本地封装H5应用
2023-05-25
h5做app与原生app的区别
HTML5技术越来越受欢迎,并在移动应用开发领域获得了很大的成功。与传统的原生应用相比,HTML5应用程序的宣传声量已经越来越高。本篇文章将深入探讨HTML5应用程序与原生应用程序之间的区别。首先, HTML5应用程序与原生应用程序之间的最大区别在于其构成
2023-05-25
h5在线打包app
近年来,随着移动互联网的快速发展,越来越多的企业、个人需要拥有自己的移动应用,而H5在线打包APP成为了一种很受青睐的选择。那么,究竟什么是H5在线打包APP?它的原理是什么呢?H5在线打包APP的概念:H5在线打包APP是指利用现有的H5网页进行二次打包
2023-05-25
h5游戏做成的app
H5游戏是一种利用HTML5技术开发的Web游戏。与传统的游戏开发技术相比,H5游戏的特点是运行环境轻便,跨平台兼容性强,开发成本低廉等。因此,越来越多的游戏开发者和企业选择利用H5技术开发游戏。而将H5游戏做成APP应用,则是近年来的一个趋势。对于用户来
2023-05-25
h5前端开发是开发app的吗
H5前端开发是指通过Web技术,使用HTML5、CSS3和JavaScript等现代语言进行网页制作和开发。它不仅可以制作各种类型的网页,还可以制作移动应用程序(App)。下面详细介绍H5前端开发和App的关系。HTML5、CSS3和JavaScript是
2023-05-25
h5开发app可以挂友盟吗
答案是可以的。下面我会详细介绍h5开发app如何挂友盟,以及原理是怎样的。首先,我们来了解一下友盟是什么。友盟是一家第三方数据分析公司,主要提供移动应用、网站和社交媒体的行为分析和用户反馈。友盟分为移动统计、社会化分享、用户反馈等几大模块。其中,移动统计可
2023-05-25
h5开发app内置sqlite
在移动应用开发中,SQLite 是一个非常常用的关系型数据库管理系统,是 Android 平台的默认数据库管理系统。它是一种轻量级的数据库管理系统,不占用太多的资源,但能够提供强大的功能,包括事务处理、索引、复杂查询等等。对于需要存储和管理大量数据的应用程
2023-05-25
h5打包的app怎样实现微信授权登录功能
在H5打包的App中,实现微信授权登录功能是非常常见的需求,因为微信授权登录优势明显,用户体验良好,大大提高了用户使用App的积极性并且减小了账号口令管理的复杂度。下面将详细介绍微信授权登录的原理和实现。一、微信授权登录的原理微信授权登录分为两步,第一步用
2023-05-25
app 开发 h5
APP开发与H5开发是互联网领域中最为重要的两个领域,这两者之间有许多关联和联系。在APP开发中,H5技术起到了非常重要的作用。本文将为您介绍APP开发与H5开发的原理和具体内容,希望对您有所帮助。一、APP开发的原理APP开发是指应用程序开发。我们常见的
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3