【分享】面向 NocoBase 的第三方 Android 客户端

应用介绍

最近用AI写了是一个面向 NocoBase 的第三方 Android 客户端项目:工作空间(Workspace)。

工作空间(Workspace)主要用于在 Android 手机上连接和管理多个 NocoBase 实例,应用支持连接和管理多个 NocoBase 实例。它使用原生 Android 组件提供实例管理、登录认证、凭据存储、文件处理、下载和悬浮球等能力,同时使用 Android WebView 加载用户配置的 NocoBase 实例页面,应用直接使用 NocoBase 原有的页面和业务能力。

  • 原来其实有做过一些套壳的APP,但是地址是写死的,换地址还要重新生成,有点麻烦,所以才重新做了这个APP,把地址设为默认后,可以实现无感登录,体验大幅提升。
  • 本来想叫NocoBase客户端,怕引起歧义改成“工作空间”这种比较通用的名字。
  • 应用只会在本地存储用户信息,不会发到第三方服务器。

项目特点

工作空间(Workspace)采用“原生 Android 外壳 + NocoBase Web 客户端”的方式实现,目前已经实现的主要功能包括:

  • 添加、编辑、删除和设置默认 NocoBase 实例;
  • 用户名密码登录和自动登录;
  • 登录状态校验和失效重新登录;
  • 拍照、相册和系统文件选择器上传;
  • 附件下载;
  • 悬浮控制球和快捷操作;
  • 深色模式、浅色模式和中英文界面;
  • Android Keystore + AES-GCM 本地保护密码和 Token。

最低支持 Android 8.0(API 26),兼容 NocoBase 2.0 及以上版本。

应用截图

登录和 API 实现

应用不通过第三方中转服务器访问 NocoBase,而是由客户端直接连接用户配置的 NocoBase 实例。

登录时调用 NocoBase 标准认证接口:

POST /api/auth:signIn

会话校验调用:

GET /api/auth:check

认证成功后,客户端保存当前实例对应的登录 Token,并在匹配当前实例来源的 WebView 页面中恢复登录状态。

应用不会把用户名、密码和 Token 上传到 Workspace 开发者或其他第三方服务器。登录时,必要的认证信息只会发送到用户主动配置的 NocoBase 实例。

应用下载

本项目采用 Apache License 2.0 开源协议。

GitHub地址:GitHub - charce526/workspace-android: Workspace(工作空间)是一套面向 NocoBase 的第三方 Android 客户端,应用支持连接和管理多个 NocoBase 实例。它使用原生 Android 组件提供实例管理、登录认证、凭据存储、文件处理、下载和悬浮球等能力,同时使用 Android WebView 加载用户配置的 NocoBase 实例页面。 · GitHub
APK下载地址:Releases · charce526/workspace-android · GitHub


我之前也用过写,我发现手机页面优化不好,很多内容是无法完整的显示,会让内容变的很多,无法快速的找到需要的功能模块;

有能力的还是推荐直接使用API+ Kotlin 直接定制页面

直接定制页面的话,就只能是面向一个固定的NocoBase实例,而且也还挺麻烦的。
现在我只要就是想实现免登录,然后快速切换不同账号/服务器。

版本更新啦:
1、可以直接通过API获取NocoBase未读的消息数量;
2、NocoBase工作空间可以拖动排序;
3、对一些全面屏的做了一些适配和调整;