自己搭建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需要考虑的费用包括开发费用、设计费用、服务器费用和市场推广费用等。下面是对每个费用的详细介绍:1. 开发费用开发费用是指开发人员在开发app的过程中所产生的费用,包括程序员的工资、租用办公室的费用、购买设备和软件的费用等。这部分费用通常是比较大
2023-06-05
自己做的app不能横屏
如果你创建的应用程序没有横屏模式,可能是由于以下原因:1. 未设置横屏模式在开发应用程序时,需要在文件 AndroidManifest.xml 中设置应用程序的屏幕方向。如果没有设置横屏模式,那么应用程序只能使用竖屏模式。要设置横屏模式,需要在 Andro
2023-06-05
自己开发的app是存货还是无形资产呢
自己开发的app可能既是存货又是无形资产。对于存货而言,它是公司正在经营中用于出售的物品。而对于一个开发者而言,如果他们准备将他们的app出售或者以其他方式准备盈利,则可以将其视为一个存货。此时,该app的开发成本可以被计入生产成本中,并计入公司的资产负债
2023-06-05
自己开发定位app
定位技术是近年来热门的技术之一,为用户提供准确的定位数据,满足人们的各种需求,如导航、社交、交通等方面。本文将对开发一个定位app的原理和详细介绍进行讲解。一、定位技术原理在手机设备上,GPS是最常用的定位技术之一,其原理基于全球定位系统。GPS将从卫星或
2023-06-05
自己开发一个扫描文字app
近年来,计算机视觉技术不断发展,从而催生出了一系列优秀的文字识别技术,如OCR(光学字符识别技术),实现了对印刷体文字的高效准确解构。而在移动互联网时代,为了方便用户更好地获取信息,开发一款能够扫描并识别文字的APP,是非常有益的。下面是自己开发一个扫描文
2023-06-05
自己制作快闪appppt
快闪APP PPT是一种特殊的幻灯片,可以通过鼠标或键盘控制PPT的播放,让演示者在不打断PPT运行的情况下,随时进入新的页面。快闪功能可以让演讲者快速地在一个演示文稿中显示某个页面或部分。下面我们来介绍一下如何自己制作快闪APP PPT。一、原理介绍快闪
2023-06-05
自动做作业app
自动做作业App是一种能够进行智能化学习的应用程序,它可以根据用户的设置和需求,帮助用户完成学习和作业任务,从而提高学习效率和质量。这种应用程序主要是基于人工智能、机器学习、自然语言处理和图像识别等技术实现的。基本原理自动做作业App的基本原理是通过人工智
2023-06-05
什么app做早餐自提柜
早餐自提柜是近几年在快速消费品领域内异军突起的一种业态。顾客可以通过自助下单、自助取餐的方式,轻松实现早餐的快捷服务。而利用app操作早餐自提柜的过程则更为简单、快捷、高效。本文将详细介绍一款app——「闪电早餐柜」,介绍其原理和使用方法。一、「闪电早餐柜
2023-05-31
如何开发app自动读取手机短信
开发一个自动读取手机短信的应用程序是一项需要一定技术基础的任务。下面我们将从原理和详细介绍两方面介绍该应用程序的开发过程。一、原理自动读取手机短信应用程序的实现原理主要分为两部分,一是获取Android设备的读取短信权限,二是编写代码实现读取短信的功能。首
2023-05-30
开发一个自己的购物app
开发一个自己的购物应用程序是一项巨大的任务,但如果你有一些编程技能和经验,这将是一个非常有趣和令人振奋的项目。在这篇文章中,我们将介绍一些基本的原则和步骤来开始开发自己的购物应用程序。第一步是确定你的应用程序的功能和特点。你应该花费一些时间来确定你的应用程
2023-05-30
金和iu app自助工厂免费制作
金和iu app自助工厂是一款由浙江金和信息科技有限公司推出的全新办公自动化产品,可以为企业和个人提供一站式的自助办公服务。这款软件不但可以帮助用户轻松完成如打印、复印、扫描、传真等日常办公工作,还可以提供各种其他办公服务,如在线学习、会议预定、客户管理等
2023-05-30
创新要自己开发app吗
创新是指通过不同的方式或实现新的想法,从而创造更好的产品、服务或生产方式等。在当今互联网时代,APP已经成为人们生活中不可或缺的一部分,许多人认为创新必须要自己开发APP,才能实现目标。但是,是否如此?下面我们来详细介绍一下。首先,开发APP确实是创新的一
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1