| 作为一个开发者,手机里总是装着各种小工具App:JSON格式化、二维码生成、图片压缩…每个App只有一两个功能,却都要占用存储空间。 于是我想:**能不能做一个”万能工具箱”,把所有常用工具集成在一起,还能让用户自己添加新工具?** ## 项目亮点 ### 1 真正的插件化架构 这不是简单的功能堆砌,而是设计了完整的插件系统: “`dart // 插件 manifest.json 示例 { “name”: “我的插件”, “version”: “1.0.0”, “permissions”: [“storage”, “network”], “main”: “index.html” } “` 用户可以: – 导入第三方插件(.cbplugin文件) – 自己开发HTML/JS插件 – 从油猴脚本转换 – 在沙箱环境中安全运行 ### 2 完善的WebView Bridge 为了让插件能与原生功能交互,我实现了一套完整的Bridge API: “`javascript // 插件中可以调用原生功能 const result = await bridge.storage.get(‘key’); await bridge.clipboard.write(‘文本内容’); const image = await bridge.image.pick(); “` 支持的功能: – 本地存储读写 – 剪贴板操作 – 图片选择/保存 – 文件访问 – 网络请求 – 震动反馈 – 等等… ### 3 细粒度的权限管理 每个插件/工具都有独立的权限控制: ![权限管理截图] 用户可以: – 查看每个工具的权限使用情况 – 随时开启/关闭特定权限 – 重置所有权限设置 – 查看权限使用历史 ### 4 自动化工作流 这是我最满意的功能之一!可以串联多个工具: “` 输入文本 → JSON格式化 → Base64编码 → 复制到剪贴板 “` 可视化编辑器,无需编程即可创建自动化流程。 ## 技术实现 ### 架构设计 “` ┌─────────────────────────────┐ │ UI Layer (Pages) │ ├─────────────────────────────┤ │ Business Logic Layer │ │ (Providers & Services) │ ├─────────────────────────────┤ │ Data Layer │ │ (Hive, File System) │ ├─────────────────────────────┤ │ Plugin Runtime Layer │ │ (WebView + Bridge) │ └─────────────────────────────┘ “` ### 关键技术点 **1. 插件沙箱隔离** “`dart // 每个插件运行在独立的WebView中 InAppWebView( initialSettings: InAppWebViewSettings( javaScriptEnabled: true, allowFileAccess: false, // 禁止访问文件系统 // … 其他安全设置 ), ) “` **2. 动态路由系统** “`dart // 根据插件配置动态生成路由 class DynamicRouteGenerator { static Route<dynamic>? generateRoute(RouteSettings settings) { // 解析路径,匹配插件 final plugin = findPluginByPath(settings.name); if (plugin != null) { return MaterialPageRoute( builder: (_) => PluginWebViewPage(plugin: plugin), ); } return null; } } “` **3. 权限拦截器** “`dart // 在Bridge层进行权限检查 Future<bool> checkPermission(String pluginId, String permission) async { final hasPermission = await PermissionService.check(pluginId, permission); if (!hasPermission) { // 弹出权限请求对话框 return await requestPermission(pluginId, permission); } return true; } “` ## 插件开发教程 开发一个插件超级简单,只需要3个文件: **1. manifest.json** – 插件配置 “`json { “name”: “示例插件”, “version”: “1.0.0”, “description”: “这是一个示例插件”, “permissions”: [“storage” } “` **2. index.html** – 主页面 “`html <!DOCTYPE html> <html> <head> <title>示例插件</title> </head> <body> <button onclick=”saveData()”>保存数据</button> <script> async function saveData() { await bridge.storage.set(‘myKey’, ‘Hello World’); alert(‘保存成功!’); } </script> </body> </html> “` **3. 打包成 .cbplugin** “`bash # 将文件夹压缩为zip,改名为.cbplugin即可 “` 详细教程见应用内的”开发者文档”。 ## 当前功能清单 37+内置工具 27种文件格式支持 插件系统 权限管理 工作流自动化 WebDAV备份 16个主题 粒子特效 错误日志 |
![图片[1]-宇宙盒子-CosmosBox工具箱1.3.2版本-相见亦楠](https://xjynw.cn/wp-content/uploads/2026/06/161301ekkjsyek9zjij8aa-469x1024.jpg)
![图片[2]-宇宙盒子-CosmosBox工具箱1.3.2版本-相见亦楠](https://xjynw.cn/wp-content/uploads/2026/06/161255rk6e65d9kbbb6dya-470x1024.jpg)
![图片[3]-宇宙盒子-CosmosBox工具箱1.3.2版本-相见亦楠](https://xjynw.cn/wp-content/uploads/2026/06/161258kttj70fj5ft5hf0r-471x1024.jpg)
建议您下载资源点击保存到网盘以防内容失效
如有侵权请联系删除,资源仅供学习研究使用
© 版权声明
THE END











暂无评论内容