☰
Euro-Office DocumentServer跨设备测试:Android模拟器与局域网设备的make mobile实战指南
2026/10/10 22:54:54 网站建设 项目流程

【免费下载链接】DocumentServer

项目地址:https://gitcode.com/gh_mirrors/doc/DocumentServer
点击查看免费下载

Euro-Office DocumentServer 是一款开源的在线办公文档协作服务端(支持文档、表格、演示文稿的网页编辑)。在开发调试时,桌面浏览器通过localhost就能打开编辑器,但Android 模拟器和局域网里的手机却无法访问它——这正是make mobile要解决的问题。本指南带你用一条命令完成跨设备文档编辑测试:自动探测宿主机局域网 IP、配置可访问的编辑地址,并附 Playwright 移动端自动化冒烟测试的玩法。

为什么 localhost 不够用:跨设备测试的核心痛点

make local(等价于直接make)启动的栈只在http://localhost:8081/上可用,桌面浏览器和 iOS 模拟器够用,但两类常见客户端会"失联":

  • Android 模拟器:它运行在独立虚拟网络里,localhost指向模拟器自己,必须用http://10.0.2.2这个特殊地址才能访问宿主机;
  • 局域网真机(手机/平板):必须使用宿主机的局域网 IP,而 Nextcloud 侧的DocumentServerUrl和trusted_domains也要同步指向这个 IP,编辑器才能被手机端真正打开。

手动改这些配置繁琐且容易漏项,make mobile就是把这套流程自动化了。

make mobile 三步快速上手

前置条件:已安装 Docker,并已完成仓库克隆与构建用户配置(参考 develop/README.md 开头的 Build Requisites 说明)。以下命令均在develop/目录中执行。

第 1 步:拉取预构建开发镜像并启动

make pull

多架构(amd64 + arm64)的:latest-dev镜像已预装好文档服务与 Nextcloud 连接器,无需本地完整构建。

第 2 步:以 mobile 模式启动(核心命令)

make mobile

它会做三件事(对应 develop/Makefile 中的mobile目标):

  1. 自动探测宿主机局域网 IP(macOS 用ipconfig,Linux 用ip route,见 develop/Makefile);
  2. 设置DocumentServerUrl = http://<你的IP>:8080/,并把该 IP 加入 Nextcloud 的trusted_domains(见refresh-urls目标,develop/Makefile);
  3. 在启动横幅中打印出完整的 Nextcloud 访问 URL,方便直接抄到手机浏览器里。

第 3 步:在各设备打开对应地址

客户端启动目标访问地址
桌面浏览器make local/make mobilehttp://localhost:8081/
iOS 模拟器make local/make mobilehttp://localhost:8081/
Android 模拟器make mobile/make next-mobilehttp://10.0.2.2:8081/
局域网真机make mobile/make next-mobilehttp://<宿主机IP>:8081/

打开 Files 应用,新建一个 docx 文档点开,即可在手机或模拟器上验证文档、表格、演示文稿的移动端编辑效果 📱。

两个实用技巧:IP 变了和探测失败怎么办

技巧 1:局域网 IP 变化(换 WiFi、开热点等)

不用重新构建,直接刷新 URL 即可:

make refresh-urls

该操作是幂等的,会把DocumentServerUrl与trusted_domains重新对齐到当前模式(develop/README.md 的 Testing from mobile devices and emulators 一节)。在local与mobile模式之间来回切换也完全支持,每次运行都会重新应用正确的地址。

技巧 2:自动探测失败时手动指定 IP

在 Windows 原生环境或任何探测失败的场景,直接传参覆盖:

make mobile HOST_LAN_IP=192.168.1.50

进阶:用 make next-mobile 测试未发布的 Nextcloud 分支

如果你在验证 Nextcloud 的未发布版本(master、stable33、stable34),桌面用make next,手机端则改用make next-mobile,它等价于next+ 自动注入局域网 IP:

make next-mobile # mobile + NC master 开发主干 make next-mobile NC_BRANCH=stable34 # mobile + NC34 稳定分支

每个分支拥有独立的数据卷,切换分支不会互相污染(develop/Makefile)。

自动化验证:Playwright 移动端冒烟测试

真机测试之外,项目内置了 Playwright 端到端测试,无需手机即可验证移动端构建是否正常渲染。核心用例在 e2e/tests/mobile-editor.spec.ts:

  • 通过 URL 参数?type=mobile强制加载移动端 bundle(绕过 UA 嗅探),覆盖 Document(docx)、Spreadsheet(xlsx)、Presentation(pptx)三种编辑器;
  • 模拟 414×896 的手机视口,断言"加载骨架屏消失 → 无错误弹窗 → 编辑画布可见 → 全程无 JS 异常",专门拦截"部署成功但运行时报错"这类隐蔽问题;
  • 运行入口在 e2e/package.json,测试基础设施配置见 e2e/playwright.config.ts(失败自动截图、首次重试录制 trace 与视频)。

global-setup.ts 还会自动拉起一个 Docker 文档服务容器并轮询健康检查,跑之前什么都不用准备:

cd e2e npm install npm test

常见问题 FAQ

Q1:make mobile和make local有什么区别?local跑在localhost,只服务桌面浏览器与 iOS 模拟器;mobile额外注入局域网 IP,让 Android 模拟器与局域网真机也能打开编辑器。两者可在同一栈上随时切换。

Q2:横幅里的 Nextcloud URL 打不开?先确认手机与宿主机在同一局域网;再检查宿主机防火墙是否放行了 8081 端口。IP 变化时执行make refresh-urls。

Q3:启动时提示 Nextcloud 数据版本落后?说明本地镜像落后于数据卷,按提示执行docker pull nextcloud:latest后重新make即可(检测逻辑见 develop/Makefile)。

Q4:想完全重置 Nextcloud 数据?

make wipe-nc # 清除 nc_data_latest make wipe-nc NC_VERSION=33 # 清除指定版本的数据卷

小结

场景命令
桌面浏览器日常开发make local
Android 模拟器 / 局域网真机make mobile
测试未发布 Nextcloud 分支(手机端)make next-mobile NC_BRANCH=stable34
局域网 IP 变化后热更新make refresh-urls
无真机时的移动端自动化冒烟cd e2e && npm test

掌握make mobile后,你的文档协作服务就能在开发机上一次启动、多端访问,跨设备文档编辑测试从此只需一条命令 ✅。

【免费下载链接】DocumentServer

项目地址:https://gitcode.com/gh_mirrors/doc/DocumentServer
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询