Skip to content

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'

参数

参数名类型必填说明
depsPlatformDetectionDeps环境检测依赖

返回值

类型说明
Environment环境类型:'h5'(H5环境)、'miniapp'(小程序环境)、'app'(App环境)、'unknown'(未知环境)

工作原理

  1. 首先检查是否为服务端环境,如果是则返回 'unknown'
  2. 检查 window 对象是否存在,如果不存在则返回 'unknown'
  3. 检查是否存在 wx.miniProgram,如果存在则返回 'miniapp'
  4. 检查是否存在 uniplus 对象,如果存在则返回 'app'
  5. 检查 userAgent 中是否包含 'app-webview' 或 'uniapp',如果包含则返回 'app'
  6. 默认返回 'h5'