自己搭建app混合开发框架怎么做

搭建app混合开发框架的原理是将原生应用程序(Native App)与web技术相结合,将业务逻辑与用户界面分别放到Native和web端去实现。混合开发框架的实现分为两种:一种是采用轻量级WebView封装Native API,如PhoneGap、Ionic等;另一种是采用JavaScript Bridge桥接WebView与Native层之间的通信,如React Native、Weex等。本文主要介绍后者。

1. JavaScript Bridge

传统的 Native App 是由 Objective-C、Swift、Java 等编写的,在应用程序启动之后直接与系统底层进行交互,这种交互成为原生应用的核心。而我们的 Hybrid App 模式中,由于 WebView 不让直接访问本地函数和 API,因此,实现一套 JavaScript Bridge 桥接来连接 WebView 和 Native 底层就显得非常需要。

2. 初始化、解析、执行

JavaScript Bridge 与 WebView 和 Native 之间的通信是基于 WebView 上执行的 JavaScript 搭建的。此时,WebView 可以注入一些原生的 API(这些 API 会在 WebView 初始化的时候初始化并且挂载到 WebView 对象中去),Webview 建立 CallbackID 到 Native 的映射(也就是建立 Java 方法和 JavaScript 回调之间的映射关系,Android 通过 Message、Handler 和Callback 来实现映射,iOS 通过字典转模型方式实现),然后通过调用 JavaScript 函数附加参数到 WebView 中,最后触发 JavaScript 函数的执行。

3. Native 层解析 JS 层参数

WebView 中的 JavaScript 函数调用后,会触发 Native 层的方法执行。在 Native 层中,我们首先要完成函数调用的解析参数的部分。在 iOS 中, 通过拆分 JS 传来的参数,把每一个参数保存到一个数组中。在 Android 中,通过对 url 解析的方式来完成参数的传递。

4. Native 层完成业务逻辑,并通过 CallbackID 回调到 JS 层

在 Native 层中得到了解析完的参数之后,就可以执行我们需要的本地操作。在 iOS 平台中这个本地操作就是调用一些 Objective-C 对象的方法,而在 Android 平台中就是调用 Java 对象的方法。当本地操作执行成功之后,我们要通过保存好的 CallbackID 找到对应的 JavaScript 函数,并且在这个函数中进行参数的传递,最后WebView 中的 JavaScript 函数会进行处理。

5. 更新 WebView

当 Native 层执行的业务逻辑处理完成之后,我们便可以将数据传递给 JavaScript 层,然后 JavaScript 层通过修改 DOM 对象来完成 UI 的刷新。在此之后,用户就可以看到完整的操作结果并且进行后续操作。

总之,搭建一个混合开发框架需要熟练掌握 WebView,JavaScript 和原生的操作方法,通过 JavaScript Bridge 的方式去连接 Native 和 WebView,并且完成对 JavaScript 函数调用的解析、执行以及业务处理。虽然实现起来比较繁琐,但是可以为开发人员提供更好的使用体验,更高的性能和更好的跨平台体验。


相关知识:
自建导航app
自建导航App原理或详细介绍近年来,随着智能手机的普及和移动互联网应用的快速发展,各类导航App层出不穷,而自建导航App成为一种越来越流行的趋势。自建导航App指基于用户自身需求,自行构建导航应用,实现个性定制、信息聚合、多途径导航等功能。手机自带的导航
2023-06-05
自己做一个app难
现如今,人们的日常生活离不开智能手机和各种应用程序(app),因此很多人都想自己做一个app来实现自己的想法,或者创造一个新的商业机会。但是,自己做一个app并不是一件容易的事情,需要一定的技能和时间投入。本文将介绍自己做一个app需要考虑哪些方面,以及需
2023-06-05
自媒体创业有哪些app 项目可以做
自媒体创业是一种逐渐普及的创业方式,越来越多的人加入了自媒体行业,成为了一名自媒体从业者。随着市场的不断变化和发展,各种自媒体平台和工具也在不断涌现。在这篇文章中,我们将介绍一些自媒体创业的app项目,包括其原理和详细介绍。1. 抖音抖音是目前最为流行的短
2023-06-05
自己开店做商城app怎么做
要建立一家商城App并不是易事。此外,它涉及到许多不同的流程和环节,涉及到产品和服务的开发,安全性和可靠性。下面是一些关于如何建立一家商城App的原理和详细介绍:1. 定位在构思和设计商城App之前,你应该了解你的目标受众。确定你的商城App是定位于哪一种
2023-06-05
自己开发票的app
开发一个自己的发票APP,可以帮助用户自动管理发票信息,方便查看、打印和导出发票。主要技术包括前端设计、后端数据库和服务器部署。以下是开发一个自己的发票APP的原理或详细介绍:1.前端设计前端设计是一个APP的重要组成部分,需要考虑用户使用的便捷性和视觉体
2023-06-05
自己开发app自己用
自己开发app自己使用是一种非常有趣和有意义的体验。当你自己开发出一款app后,可以让你更好的理解移动应用开发的原理和流程。更重要的是,这样做可以帮助你满足自己的需求,将你的想法转化为现实。现如今,开发一款app的过程变得越来越容易了,因为我们有很多神奇的
2023-06-05
怎么在手机上开发自己的app
在手机上开发自己的APP,主要有两种方法,一种是直接通过第三方应用来构建应用,比如APP Inventor,另一种是通过开发者模式来自己编写应用程序。APP Inventor是Google开发的一款适用于非技术人员开发APP的工具,可以在不需要编程知识的情
2023-06-05
怎么制作属于自己的单词书app
制作属于自己的单词书app需要懂得开发技术,以下是基本的制作原理和步骤:1. 界面设计:首先需要设计一个漂亮、易用、直观的界面,用户可以很容易地学习和掌握单词。2. 数据库设计:需要设计一个数据库来储存单词和释义,可以使用MySQL或SQLite等关系型数
2023-06-05
徐州自动量化交易app开发费用
徐州自动量化交易app的开发费用是由多个因素决定的。这些因素包括应用程序的复杂程度、API集成和交易所的支持、数据源和其他所需服务的成本等等。以下是一个关于徐州自动量化交易app开发费用的详细介绍。1. 应用程序的复杂程度应用程序的复杂程度是决定开发费用的
2023-06-05
神段子app是段友自己做的吗
神段子app是一款汇集了大量搞笑段子、短视频、GIF动图等各种趣味内容的社交娱乐应用。这个应用的主要特点是让用户们可以在这里分享自己的段子和趣味视频,也可以在这里发现其他人所分享的好笑内容。神段子app的原理非常简单,主要是依托于互联网上的社交网络和内容分
2023-05-31
讲述自己开发的app优势
我开发的App名为“记单词”,是一款专为学习英语的人士设计的应用程序。通过这个App,用户可以轻松地学习英语单词,并随时测试自己的掌握程度。以下是该App的优势:1. 采用了最新的学习方法“记单词”采用了最新的学习方法——分组记忆法。这个方法分成多个学习组
2023-05-30
东兴自主产权的考试app开发
东兴自主产权的考试App是一款专注于考试辅助的移动应用程序。该App的开发基于以下原理:1. 强大的内容管理系统该App拥有一个强大的内容管理系统,包含了许多不同种类的考试题库,涵盖国内外主流资格认证考试、公务员考试、高等教育入学考试等各类考试。这些题库均
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1