在说小程序、React Native、Flutter 之前,必须要大致了解 WebKit 是什么。
WebKit 是一个 Web 浏览器引擎。何为引擎?众所周知,游戏有 Unreal 引擎、Unity 引擎,没有这些引擎,游戏开发者编写代码由谁来执行?所以,引擎是驱动代码的发动机。不同的 Web 浏览器有不同的 Web 引擎,除了 WebKit 之外,还有 Microsoft Edge 使用的 EdgeHTML 引擎;Mozilla Firefox 使用的 Gecko 引擎。
让 Android 系统和 IOS 系统嵌入 WebKit 就可以使用 HTML、JavaScript、CSS 来开发应用。Android 提供 WebView 控件来实现网页的显示,而 IOS 的控件是 WKWebView。
使用 H5(HTML、JavaScript、CSS 技术栈,也就是 Web 前端使用的技术栈)+ 原生(指的是 Android 原生开发和 IOS 原生开发)开发模式为混合开发,采用混合模式开发的应用我们称之为混合应用或 HTMLybrid App。
近年来流行的小程序使用的开发技术栈是 Web 技术栈,而底层渲染方式基本都是 WebView 和原生相结合的方式。
原生开发可以访问平台所有功能,而混合开发中,运行在 WebView 中的 JavaScript 依然运行在一个权限受限的沙箱中,没有访问系统级别的权限,比如:文件系统、蓝牙、GPS 等。所以,对于 H5 技术栈不能实现的功能,就需要原生去做。
... 更新中 ...