鸿蒙沙箱浏览器 - SandboxFinder

欢迎 🌟star : github.com/iHongRen/Sa...

一个专为 HarmonyOS 应用开发者设计的沙箱文件浏览器,通过内置 HTTP 服务器提供 Web 界面访问应用沙箱目录。

核心特性

🗂️ 沙箱文件系统

  • 内置 HTTP 服务器 - 基于 TCP Socket 实现的轻量级 HTTP 服务器
  • 多设备 - 支持模拟器和真机
  • 文件类型识别 - 智能识别文本、图片、视频、音频、SQLite 数据库等文件类型
  • 自定义端口 - 默认端口7777

🌐 Web 界面访问

  • 响应式 Web UI - 使用 Vue 3 + Tailwind CSS 构建的现代化界面
  • 快速访问 - 提供便捷的沙箱目录访问(filesDircacheDirtempDirdatabaseDir 等)
  • 预览 - 支持文本、图片、视频、音频、SQLite 数据库预览
  • 排序 - 支持按名称、大小、时间排序
  • 搜索 - 实时关键字搜索

📁 文件操作功能

  • 基础文件操作 - 创建、删除、重命名

  • 文件上传 - 支持大文件分块、批量、拖放上传

  • 下载 - 直链下载

快速开始

集成到项目
  1. 安装
sh 复制代码
ohpm install @cxy/sandboxfinder

添加依赖,然后同步

json5 复制代码
// oh-package.json5
{
  "dependencies": {
    "@cxy/sandboxfinder": "^1.0.0"
  }
}
  1. 导入并启动
typescript 复制代码
// 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()
      });

      // 避免服务挂起,设置不息屏
      windowStage.getMainWindowSync().setWindowKeepScreenOn(true)
    }
  });
}
  1. 确保鸿蒙设备和电脑在同一网络, 获取访问地址: 查看打印log -> 搜索 '--'。

    或者直接查看设备IP:设置 -> WLAN -> 已连接的WIFI详情 -> IP地址。

sh 复制代码
 ----------------------------------------------------------
 
 沙箱浏览器启动成功
 请浏览器访问: http://192.168.2.38:7777
 
 ----------------------------------------------------------
  1. 浏览器直接访问: http://192.168.2.38:7777 (换成你的IP)

模拟器使用

沙箱浏览器开启后,模拟器需转发端口,才能访问。

sh 复制代码
# 查看模拟器设备
> 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 , 如果无法访问,关闭网络代理工具试试看。

SandboxFinder 类说明

1、SandboxFinder 提供了两个对外静态方法:

ts 复制代码
/**
 * 运行服务
 * @param port  端口号,默认7777
 * @param context UIAbilityContext, 默认 getContext()
 * @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

ts 复制代码
// EntryAbility.ets  - onWindowStageCreate()
import('@cxy/sandboxfinder').then(async (ns: ESObject) => {
  // 绑定到端口 6666
  ns.SandboxFinder.run(6666, this.context).then((serverInfo: ESObject) => {
    console.log(JSON.stringify(serverInfo))
  })
});

作者

@仙银 其他鸿蒙相关开源作品,欢迎使用和 🌟star :

1、hpack - 鸿蒙内部测试分发,一键脚本打包工具

2、Open-in-DevEco-Studio - macOS 直接在 Finder 工具栏上,使用 DevEco-Studio 打开鸿蒙工程。

3、cxy-theme - DevEco-Studio 绿色背景主题

相关推荐
一起养小猫17 小时前
Flutter for OpenHarmony 实战:记账应用数据统计与可视化
开发语言·jvm·数据库·flutter·信息可视化·harmonyos
森之鸟18 小时前
多智能体系统开发入门:用鸿蒙实现设备间的AI协同决策
人工智能·harmonyos·m
jin12332218 小时前
React Native鸿蒙跨平台完成剧本杀组队详情页面,可以复用桌游、团建、赛事等各类组队详情页开发
javascript·react native·react.js·ecmascript·harmonyos
_waylau19 小时前
【HarmonyOS NEXT+AI】问答08:仓颉编程语言是中文编程语言吗?
人工智能·华为·harmonyos·鸿蒙·仓颉编程语言·鸿蒙生态·鸿蒙6
前端菜鸟日常19 小时前
鸿蒙开发实战:100 个项目疑难杂症汇编
汇编·华为·harmonyos
jin12332220 小时前
基于React Native鸿蒙跨平台移动端表单类 CRUD 应用,涵盖地址列表展示、新增/编辑/删除/设为默认等核心操作
react native·react.js·ecmascript·harmonyos
摘星编程21 小时前
OpenHarmony环境下React Native:DatePicker日期选择器
react native·react.js·harmonyos
一起养小猫1 天前
Flutter for OpenHarmony 实战:番茄钟应用完整开发指南
开发语言·jvm·数据库·flutter·信息可视化·harmonyos
一起养小猫1 天前
Flutter for OpenHarmony 实战:数据持久化方案深度解析
网络·jvm·数据库·flutter·游戏·harmonyos
不爱吃糖的程序媛1 天前
Cordova/Capacitor 在鸿蒙生态中的实践与展望
华为·harmonyos