ArkWeb 手记 10|把 ArkWeb 收成业务容器

HarmonyOS 7 · ArkWeb 混合应用开发手记 10

前九篇我们一直在修一个个问题:加载、生命周期、Bridge、返回、文件、登录、缓存、性能、安全。

最后一篇不再加新API。我们做一件更重要的事:把这些能力收成一个团队能复用的 ArkWeb业务容器。

1. 容器不是一个超大组件

最差的封装是 BusinessWeb.ets 两千行,什么都在里面。

我更喜欢拆成:

text 复制代码
WebContainer
 ├─ WebStateManager
 ├─ BridgeManager
 ├─ NavigationPolicy
 ├─ AuthSync
 ├─ UploadHandler
 ├─ SecurityPolicy
 └─ WebLogger

2. 页面只传配置

ts 复制代码
interface WebPageConfig {
  url: string
  title?: string
  enableBridge: boolean
  allowedHosts: string[]
}

业务页面不应该重新写一遍生命周期和错误页。

3. 状态统一

ts 复制代码
enum WebState {
  Idle,
  Loading,
  Ready,
  Error
}

Loading、错误、重试都由容器管理。

4. Bridge 作为插件能力

不同页面声明自己需要的方法:

ts 复制代码
bridgeMethods: [
  'getAuthInfo',
  'openShare'
]

容器按配置注册,不给所有页面全量权限。

5. 返回策略也配置化

ts 复制代码
backMode: 'webFirst'

特殊页面可以用 nativeOnly 或业务自定义策略,但默认规则只有一套。

6. 登录变化统一广播

账号模块只通知容器层一次,各 Web实例再根据自己的状态接收,不要每个页面都监听账号中心。

7. 观测能力放进底座

至少记录:URL(脱敏)、加载耗时、错误码、Bridge method、requestId、资源版本。线上出了问题,容器日志应该能还原大部分路径。

8. 性能策略不要默认全开

预取、预连接、缓存、容器复用都应该有场景开关。优化能力越强,错误使用时副作用也越明显。

9. 安全策略不能被业务随便关

域名校验、敏感日志脱敏、Bridge白名单属于底线能力。业务配置可以变严格,不应该随手变宽松。

10. 一个最小使用方式

最后业务页面最好只剩:

ts 复制代码
BusinessWeb({
  config: {
    url: 'https://m.example.com/order',
    enableBridge: true,
    allowedHosts: ['m.example.com']
  }
})

剩下的 Loading、错误、返回、Bridge、认证同步和日志都由容器负责。

结尾

做到这里,这个系列其实走完了一条完整路线。

01 先把 Web 加载和生命周期管住;02 打通 ArkTS 与 H5;03 把 Bridge变成协议;04 解决返回栈;05 接文件;06 同步登录态;07 做缓存和离线;08用数据做性能;09 把安全边界补齐;10 再把这些能力收回一个可复用容器。

真正成熟的混合开发,不是会调多少 ArkWeb API,而是页面出了问题以后,你知道它现在在哪个阶段、谁拥有状态、消息从哪里来、权限到哪里结束。

如果你准备把这一套放进真实项目,最后一个练习不是再加功能,而是删代码:新建第二个Web 业务页面,看看还有多少加载、Bridge、返回和错误处理需要复制。

复制得越少,这个容器才越接近真正能用。

相关推荐
ToDesk_Daas10 小时前
深度适配鸿蒙生态,ToDesk 迎来版本升级,全面优化远程操控体验
华为·harmonyos
贾伟康10 小时前
【化学实验室|15】HarmonyOS ArkTS 本地状态持久化实战:让保存、删除和页面返回后的数据即时一致
harmonyos·arkts·本地存储·arkui·preferences
行者-全栈开发16 小时前
【共创稿事节】HarmonyOS 7 轻量悬浮窗口选型与闪控窗接入:闪控球、闪控窗、系统悬浮窗到底怎么选
harmonyos·鸿蒙·arkui·闪控窗·api 26·选型决策树·闪控球
OH_TPC18 小时前
@ohos/axios 源码解读(二):适配层是一场翻译,而翻译要处理四类错位
harmonyos
CV工程师丁Sir1 天前
ArkWeb 手记 11:Web 组件与原生动画的协同
harmonyos·混合开发·arkweb
CV工程师丁Sir1 天前
ArkWeb 手记 12:Web 组件内存泄漏排查实录
性能优化·harmonyos·arkweb
用户29469405448162 天前
DSH Desktop - Electron on HarmonyOS Edition
harmonyos·deepseek
IsITGirl2 天前
HarmonyOS 鸿蒙 WuKong 稳定性测试报错 Failed to connect to AAMS(已解决)
华为·harmonyos
万物智能信息科技2 天前
鸿蒙RS232驱动开发—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
驱动开发·华为·开源·harmonyos·鸿蒙
less_121382 天前
鸿蒙 WPS Open SDK 接入指南:凭据申请、HAR 集成与 registerApp 校验
华为·harmonyos·wps