A588开源鸿蒙 6.1.0.31,从0到1用 **ArkTS / ArkUI 自写了一款浏览器**,包名 `com.a588.browser`

一:硬件准备

OpenHarmony **6.1-Release** 已经具备完整的标准系统:Ability 运行时、ArkUI 声明式界面、Web 组件、多媒体 `AVPlayer`、网络 `http`。

A588 跑的是同一套 6.1 框架,板级换成自己的设备树和中间 HDMI

| 项 | 做法 |
| 系统版本 | OpenHarmony **6.1**,ArkWeb + ArkTS stage 模型 |
| 包名 | `com.a588.browser`,厂商标识 A588 |
| 模块名 | `phone`,和桌面码头预设一致 |
| 源码位置 | `applications/standard/a588_browser` |
| 预装 | `install_list.json` 写入 `/system/app/com.a588.browser` |

应用跟 6.1 的 SDK、签名、权限模型对齐,板级差异只留在自己的 HAP 里。换 6.1 补丁、重编 settings / launcher,不必再拆一份浏览器内核

二:自研的是整壳,不是一张 Web 页

浏览器主体是一份 ArkTS 页面:`pages/Index.ets`。没有用第三方 Chromium 壳,也没有把网页塞进设置应用。自己写的部分包括:

**桌面级导航条。** 后退、前进、刷新、主页、地址栏、「前往」,外加一颗绿色 **「播放」**。地址栏关掉系统软键盘抢焦点,外接鼠标和键盘能直接点、直接打字。工控屏上这是刚需。

**自己的起始页。** 搜狗、百度、新闻、网易、新浪、知乎、好看,按站点铺成色块,点一下进站。关键词走搜索,网址自动补 `https://`。

**6.1 Web 组件。** `Web` + `WebviewController`,打开 JS、DOM Storage、混合内容、手势播放。渲染进程用单进程模式,适配这块板上 leftover HDMI 的图形路径。启动时 `initializeWebEngine()`,保证第一次开页就有引擎。

**自绘键盘。** 网页里的输入框不走系统 IME(这块板默认输入法不完整)。`onInterceptKeyboardAttach` 拦下系统键盘,换成页面里的字母、数字、空格、删除。外接键盘照常可用。

**应用链接改写。** 拦截 `xxx://` 这类 App 协议,从参数里抽出真正的 `http(s)` 再打开,避免点搜索结果跳进「打不开的应用」。

这些都写在自己的 Ability 里,和 SystemUI、设置、官方浏览器包没有绑在一起。

三:代码怎么组织

applications/standard/a588_browser/
  AppScope/app.json5          # 包名 com.a588.browser
  entry/src/main/ets/
    Application/AbilityStage.ts
    MainAbility/MainAbility.ts
    pages/Index.ets           # 导航、Web、键盘、播放器
    pages/About.ets
    common/UrlHelper.ts       # 站点、地址归一化、抽流脚本

编译用 6.1 命令行工具:

hvigorw assembleHap --mode module -p product=default -p debuggable=false --no-daemon

签名用 OpenHarmony Application Release,产物进 `applications/standard/hap/Browser.hap`,再预装进 system 分区。桌面码头预设第一项就是这个包的 `MainAbility` / 模块 `phone`。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐