前端/移动开发面试题更新 2026-08-05

请解释 JSBridge 的核心概念,并说明在 H5 混合开发中,H5 页面与原生 App 之间进行通信的主要机制和实现方式。

前端/移动开发技术原理问题排查

考察说明

考查对混合开发中 H5 与原生通信机制的理解,包括 JSBridge 的原理和常见实现。

回答思路

  1. 【回答框架 1】JSBridge 是 H5 与原生 App 之间通信的桥梁,本质是原生提供接口,H5 通过约定方式调用,并处理回调。其核心是建立双向通信通道,使 JavaScript 能调用原生能力(如相机、定位等),原生也能主动向 H5 发送消息。
  2. 【回答框架 2】H5 调用原生常见方式:1. 拦截 URL Scheme,例如自定义协议如 myapp://,H5 通过 iframe 或 location 跳转触发原生拦截;2. 注入 JavaScript API,原生通过 WebView 的 evaluateJavascript 或 addJavascriptInterface(Android)向 JS 环境注入全局对象,H5 直接调用;iOS 可使用 WKScriptMessageHandler。
  3. 【回答框架 3】原生调用 H5 通常通过 WebView 的 evaluateJavascript 执行 JS 代码,或通过 WebViewJavascriptBridge 类库封装统一消息格式,并利用回调函数实现异步结果返回。
  4. 【回答框架 4】实现 JSBridge 时需设计消息格式(如 JSON 包含 method、params、callbackId),维护回调映射表,处理异步与同步调用,并注意线程切换(原生回调需回到主线程)。
  5. 【回答框架 5】具体实现可选用成熟库(如 WebViewJavascriptBridge、dsbridge、JSSDK),或自定义实现;需考虑兼容不同 WebView 和平台差异。
  6. 【关键点 1】JSBridge 是 H5 与原生的双向通信桥梁。
  7. 【关键点 2】H5 调原生核心方式:拦截 URL Scheme 或注入 JS API。
  8. 【关键点 3】原生调 H5 通过 evaluateJavascript 执行 JS 函数。
  9. 【关键点 4】设计时应统一消息格式,管理回调 ID,确保异步可靠。
  10. 【易错点 1】不能将 JSBridge 与网络通信(如 AJAX)混淆,只能桥接原生能力。
  11. 【易错点 2】URL Scheme 方式存在长度限制和性能问题,且容易被系统拦截。
  12. 【易错点 3】必须考虑回调的线程与生命周期,防止内存泄漏。