|
查看: 123|回复: 49
|
[安卓]
宇宙盒子-CosmosBox工具箱1.3.2版本
[复制链接]
|

UID4
贡献9 点
钻石99 个
C币8 个
|
作为一个开发者,手机里总是装着各种小工具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个主题
粒子特效
错误日志
附上下载地址 :宇宙盒子https://wwazb.lanzout.com/b019vuqh1c密码:f5ip |
温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
6、网络世界也请遵守我国的法律法规!一旦发现违法行为,将立即封存相关信息并报警处理!
|
|
|
|
|
|
|
|
|
|
发表于 2026-5-6 04:46:31
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 2026-5-10 04:01:33
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 2026-5-13 16:59:51
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 2026-5-16 06:40:14
|
显示全部楼层
|
文档写清楚能省掉后面大量的沟通成本。想请教下你们的监控是怎么做的? |
|
|
|
|
|
|
|
|
|
|
发表于 2026-5-18 16:55:02
|
显示全部楼层
|
这类方案在小规模下表现很好,上量之后瓶颈就出来了。有没有遇到过数据一致性的问题? |
|
|
|
|
|
|
|
|
|
|
发表于 2026-5-20 23:03:09
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 2026-5-24 03:06:57
|
显示全部楼层
|
自动化程度决定了长期维护的人力投入。你们的规模大概多少?想判断下方案是否适用。 |
|
|
|
|
|
|
|
|
|
|
发表于 2026-5-26 03:05:01
|
显示全部楼层
|
同类的坑不同环境表现不一样,别人的经验只能参考。有没有遇到过数据一致性的问题? |
|
|
|
|
|
|
|
|
|
|
发表于 2026-5-28 17:26:31
|
显示全部楼层
|
|
|
|
|
|
|
|
温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
6、网络世界也请遵守我国的法律法规!一旦发现违法行为,将立即封存相关信息并报警处理!