A588开源鸿蒙 6.1.0.31,从0到1用 **ArkTS / ArkUI 自写了一款浏览器**,包名 `com.a588.browser`
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`。
更多推荐
所有评论(0)