detectBridgeEnvironment
检测 Bridge 运行环境,判断当前是 H5、小程序还是 App 环境
前置依赖
依赖参数
| 参数名 | 类型 | 说明 |
|---|---|---|
deps.isServer | () => boolean | 检查是否存在 window 对象 |
deps.getWindow | () => UniWindow | null | 获取 window 对象(如果存在) |
deps.getNavigator | () => Navigator | null | 获取 navigator 对象(如果存在) |
deps.getWx | () => WxJsSdk | null | 获取微信 JS-SDK 对象(如果存在) |
环境要求
- 浏览器环境: 需要 window、navigator 对象
- 微信小程序: 需要 wx.miniProgram 对象
- App WebView: 需要 uni 或 plus 对象
函数签名
typescript
function detectBridgeEnvironment(deps: PlatformDetectionDeps): Environment
type Environment = 'h5' | 'miniapp' | 'app' | 'unknown'参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
deps | PlatformDetectionDeps | 是 | 环境检测依赖 |
返回值
| 类型 | 说明 |
|---|---|
Environment | 环境类型:'h5'(H5环境)、'miniapp'(小程序环境)、'app'(App环境)、'unknown'(未知环境) |
工作原理
- 首先检查是否为服务端环境,如果是则返回 'unknown'
- 检查 window 对象是否存在,如果不存在则返回 'unknown'
- 检查是否存在
wx.miniProgram,如果存在则返回 'miniapp' - 检查是否存在
uni或plus对象,如果存在则返回 'app' - 检查 userAgent 中是否包含 'app-webview' 或 'uniapp',如果包含则返回 'app'
- 默认返回 'h5'