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