Yasee JS SDK 分析
1. 背景
百合医平台需要承载第三方 H5 服务。H5 运行在 App WebView 中时,单靠浏览器标准能力无法直接完成以下操作:
- 获取 App 和设备信息;
- 获取当前用户授权信息;
- 调起 Native 支付、扫码、图片选择和分享;
- 控制 Native 页面标题、返回行为和底部导航;
- 修改 WebView 容器样式;
- 接收 App 主动推送的页面或业务事件。
如果每个 H5 项目分别与 iOS、Android 约定调用方式,会产生重复接入、协议不一致、错误处理分散和升级困难等问题。
Yasee JS SDK 的作用,是在第三方 H5 和百合医 App Native 能力之间建立统一、稳定、可测试的通信层。
2. SDK 的核心意义
2.1 屏蔽端能力差异
H5 只需要调用统一接口:
await yasee.media.imgChoose({ count: 1 });
SDK 会根据运行环境选择不同的 Native 通道:
- iOS:
window.webkit.messageHandlers.YaseeSDK.postMessage(...) - Android:
window.YaseeSDK.postMessage(...)
业务代码不需要识别平台,也不需要分别维护 iOS 和 Android 调用逻辑。
2.2 建立统一的 Native 协议
所有 H5 → Native 调用统一为:
{
callbackId,
module,
method,
params
}
统一协议带来的价值:
- Native 可以使用一个入口分发所有能力;
- 每个调用通过
callbackId精确关联异步结果; - 新增能力时不需要重新设计通信机制;
- 协议日志、问题排查和自动化测试更容易标准化。