在兼顾开发效率与原生体验的企业级 APP 中,Webview 与原生(Android/iOS)代码的高频交互是业务基石。早期的 `prompt` 拦截方式存在兼容性差与容易被注入利用的风险。纳海川移动组设计了一套具备签名校验与消息队列的工业级 JSBridge 协议。
一、JSBridge 协议规范定义
采用统一的 JSON-RPC 格式,每次调用生成全局唯一的 `callbackId` 并加入请求暂存队列:
// 前端向原生发送指令
window.NhcBridge.callNative('getBluetoothDeviceInfo', { timeout: 5000 }, function(response) {
if (response.code === 0) {
console.log('蓝牙外设数据:', response.data);
}
});
二、通信安全性与白名单防御
针对 Webview 容易遭遇中间人攻击与恶意页面仿冒调用的风险,Native 容器建立严格的域名与接口白名单机制,只有来自公司官方域名的页面方可调用相机、蓝牙、文件存储等敏感硬件权限。
三、大体积数据与二进制流传输优化
避免在 JSBridge 中传输超过 1MB 的 Base64 图片,改由 Native 端生成临时本地缓存文件路径后回传 URI,内存占用大幅降低 80%。
工程价值:该统一通信桥已广泛应用于纳海川数十款跨端政务移动办事和手持设备系统,跨端调用成功率达 99.99%。