HarmonyOS 鸿蒙Next沙箱浏览器 - SandboxFinder
HarmonyOS 鸿蒙Next沙箱浏览器 - SandboxFinder 一个专为 HarmonyOS 应用开发者设计的沙箱文件浏览器,通过内置 HTTP 服务器提供 Web 界面访问应用沙箱目录。
核心特性
🗂️ 沙箱文件系统
- 内置 HTTP 服务器 - 基于
TCP Socket
实现的轻量级 HTTP 服务器 - 多设备 - 支持模拟器和真机
- 文件类型识别 - 智能识别文本、图片、视频、音频、SQLite 数据库等文件类型
- 自定义端口 - 默认端口
7777
🌐 Web 界面访问
- 响应式 Web UI - 使用 Vue 3 + Tailwind CSS 构建的现代化界面
- 快速访问 - 提供便捷的沙箱目录访问(
filesDir
、cacheDir
、tempDir
、databaseDir
等) - 预览 - 支持文本、图片、视频、音频、SQLite 数据库预览
- 排序 - 支持按名称、大小、时间排序
- 搜索 - 实时关键字搜索
📁 文件操作功能
- 基础文件操作 - 创建、删除、重命名
- 文件上传 - 支持大文件分块、批量、拖放上传
- 下载 - 直链下载
快速开始
集成到项目
- 安装
ohpm install [@cxy](/user/cxy)/sandboxfinder
或 添加依赖,然后同步
// oh-package.json5
{
"dependencies": {
"[@cxy](/user/cxy)/sandboxfinder": "^1.0.0"
}
}
- 导入并启动
// EntryAbility.ets
// 导入BuildProfile,编译工程自动生成
import BuildProfile from ‘BuildProfile’;
onWindowStageCreate(windowStage: window.WindowStage): void {
windowStage.loadContent(‘pages/Index’, (err) => {
if (err.code) {
return;
}
// 推荐在 DEBUG 模式下使用 - 动态加载
if (BuildProfile.DEBUG) {
import(’@cxy/sandboxfinder’).then(async (ns: ESObject) => {
// 默认绑定到端口 7777
ns.SandboxFinder.run()
});
<span class="hljs-comment">// 避免服务挂起,设置不息屏</span>
windowStage.<span class="hljs-title function_">getMainWindowSync</span>().<span class="hljs-title function_">setWindowKeepScreenOn</span>(<span class="hljs-literal">true</span>)
}
});
}
- 确保鸿蒙设备和电脑在同一网络, 获取访问地址: 查看打印log -> 搜索 '--'。
或者直接查看设备IP:设置 -> WLAN -> 已连接的WIFI详情 -> IP地址。
----------------------------------------------------------
沙箱浏览器启动成功
请浏览器访问: http://192.168.2.38:7777
- 浏览器直接访问: [http://192.168.2.38:7777](http://192.168.2.38:7777) (换成你的IP)
模拟器使用
沙箱浏览器开启后,模拟器需转发端口,才能访问。
# 查看模拟器设备
> hdc list targets # 输出: 127.0.0.1:5555
转发端口 fport tcp:<localPort> tcp:<serverPort>
hdc -t 127.0.0.1:5555 fport tcp:7777 tcp:7777
输出: Forwardport result:OK 表示成功
转发成功后,访问: [http://127.0.0.1:7777](http://127.0.0.1:7777) , 如果无法访问,关闭网络代理工具试试看。
SandboxFinder 类说明
1、SandboxFinder
提供了两个对外静态方法:
/**
* 运行服务
* [@param](/user/param) port 端口号,默认7777
* [@param](/user/param) context UIAbilityContext, 默认 getContext()
* [@returns](/user/returns) ServerInfo =》 { address: string , port: number }
*/
static async run(port: number = 7777,
context: common.UIAbilityContext = getContext() as common.UIAbilityContext): Promise<ServerInfo>;
/**
- 停止服务
*/
static async stop();
2、查看 ServerInfo
// EntryAbility.ets - onWindowStageCreate()
import('[@cxy](/user/cxy)/sandboxfinder').then(async (ns: ESObject) => {
// 绑定到端口 6666
ns.SandboxFinder.run(6666, this.context).then((serverInfo: ESObject) => {
console.log(JSON.stringify(serverInfo))
})
});
作者
@仙银 其他鸿蒙相关开源作品,欢迎使用和 🌟star :
1、[hpack](https://github.com/iHongRen/hpack) - 鸿蒙内部测试分发,一键脚本打包工具
2、[Open-in-DevEco-Studio](https://github.com/iHongRen/Open-in-DevEco-Studio) - macOS 直接在 Finder 工具栏上,使用 DevEco-Studio 打开鸿蒙工程。
3、[cxy-theme](https://github.com/iHongRen/cxy-theme) - DevEco-Studio 绿色背景主题
更多关于HarmonyOS 鸿蒙Next沙箱浏览器 - SandboxFinder的实战教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS鸿蒙Next的沙箱浏览器SandboxFinder是鸿蒙系统的安全隔离机制实现。它基于微内核架构,通过独立进程空间和权限管控实现应用隔离,不依赖传统Linux沙箱技术。其核心特性包括:
- 应用数据加密存储;
- 进程间通信受控;
- 动态权限最小化分配。
SandboxFinder使用鸿蒙自研的分布式安全协议,支持跨设备安全验证。该机制完全由ArkTS实现,无Java或C语言依赖。
更多关于HarmonyOS 鸿蒙Next沙箱浏览器 - SandboxFinder的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
SandboxFinder是一个很实用的HarmonyOS开发工具,主要解决了开发者在调试过程中访问应用沙箱文件的痛点。从技术实现来看,它有以下几个亮点:
-
采用轻量级HTTP服务器方案,基于TCP Socket实现,不依赖第三方库,保证了兼容性和稳定性。默认7777端口的设计也很合理,避免了常见端口冲突。
-
文件类型识别功能做得比较全面,特别是支持SQLite数据库预览,这对需要调试数据库的应用很有帮助。
-
Web界面采用Vue 3 + Tailwind CSS的现代技术栈,响应式设计适配各种设备,开发者体验良好。
-
动态加载机制很巧妙,通过BuildProfile.DEBUG判断,确保只在调试模式下加载,避免影响正式版本性能。
-
对模拟器的支持也很完善,通过hdc端口转发解决了模拟器网络隔离的问题。
建议开发者使用时注意:
- 真机调试时要确保设备和PC在同一局域网
- 大文件上传时注意内存占用
- 生产环境务必移除相关代码
总体来说,这个工具填补了HarmonyOS开发工具链的一个空白,能显著提升开发调试效率。