版本动态

更新日志

记录每个版本新增的能力、修复的问题和使用体验调整。

下载最新版本
最新版本

2.7.31-WHRCT22

官网法律页面与关于页入口更新

  • 关于页面的支持网站、用户协议和隐私政策统一迁移至 https://hopwebx.xyz。
  • 官网新增简体中文、English、Español 三语言用户协议与隐私政策,支持后台编辑和 AI 自动翻译。
  • “加入群聊”按钮暂时禁用并显示为不可操作状态。

官网与法律

  • 新增用户协议和隐私政策页面,并加入网站页脚。
  • 法律内容接入后台编辑、公开读取接口和 AI 三语翻译流程。

关于页面

  • 支持网站改为 https://hopwebx.xyz,用户协议和隐私政策使用官网新页面。
  • 暂时禁用加入群聊入口。
基准版本

2.7.30-WHRCT22

修复代码编辑器 Unicode 字符异常刷屏

  • HTML、PHP 等代码包含中文标点、特殊空格或 Emoji 时,不再连续输出 Illegal character 异常。
  • 未识别的 Unicode 字符会作为普通文本继续扫描,语法高亮位置保持正确。

修复

  • 修复词法分析器遇到未识别 Unicode 字符时抛出异常的问题。
基准版本

2.7.29-WHRCT22

修复打开 PHP 文件时的语法分析异常

  • 修复打开 PHP、空文件或其他代码文件时,语法分析器在文件末尾对空 Token 调用 charAt(0),连续输出 StringIndexOutOfBoundsException 的问题。
  • 语法分析器现在会在 EOF、空 Token 和重新分词取消信号处安全结束。
  • 快速切换或重复打开文件时,旧分析线程不再继续无效扫描。
  • 完成语法分析后及时关闭文本读取器,避免编辑器分析资源残留。

修复

  • 修复语法分析器处理 EOF 空 Token 时的越界访问。

改进

  • 重新分词时及时取消旧扫描线程。
  • 语法分析完成后关闭文本读取器。
基准版本

2.7.28-WHRCT22

新增项目文件分享与 ZIP 一键导入网站

  • 项目文件长按菜单新增分享文件,可通过系统分享面板发送到微信、MT 管理器等应用。
  • HopWeb X 注册为 ZIP 网站压缩包的打开和分享目标,下载后可直接选择 HopWeb X 导入。
  • 外部 ZIP 自动复制到缓存并导入项目目录,同名项目自动追加序号。
  • ZIP 解压增加规范路径边界校验,阻止异常压缩包写出目标项目目录。

新增

  • 新增项目内部单文件系统分享功能。
  • 新增从系统打开方式和分享面板直接导入 ZIP 网站压缩包。

改进

  • 导入后的项目立即出现在项目列表中,同名项目自动使用数字后缀。

安全

  • ZIP 解压增加规范路径边界检查,限制写入目标项目目录。
基准版本

2.7.27-WHRCT22

修复项目环境初始化状态异常

  • 修复 PHP 项目切换主题后一直初始化
  • 修复 Nginx PID 与服务状态不一致
  • 修复切换项目时的异步停止竞争

修复

  • PHP-FPM 和 MariaDB 在主题重建后会向新界面恢复就绪状态。
  • Nginx PID 丢失时会自愈,停止时会清理残留进程。
  • 旧项目的异步停止不会再关闭新项目环境。

改进

  • 服务复用前会校验真实 PID、进程状态和 PHP Unix Socket。
基准版本

2.7.26-WHRCT22

为全应用交互加入克制而统一的轻触反馈,让项目、设置、关于、工具栏、列表和对话框按钮的点击更有确认感,同时避免在滑动与编辑过程中误触发。

  • 首页项目卡片、设置与关于入口、工具栏图标、列表项目以及各界面普通按钮现在会在完成点击时产生非常轻微的震动。
  • 所有 Activity 通过统一的 BaseActivity 点击分发逻辑获得一致反馈,不需要为每个页面重复维护触觉代码。
  • 常用确认、取消和中立对话框按钮使用相同的 CLOCK_TICK 轻触效果,并尊重系统触觉反馈开关。
  • 滑动、多指操作、输入框、进度拖动条和 WebView 内容会被排除,避免滚动或编辑时产生多余震动。

触觉反馈

  • 为项目卡片、页面入口、工具栏、列表项目和普通按钮增加统一的轻量点击反馈。
  • 为常用对话框的确认、取消和中立按钮补充同等级触觉反馈。
  • 使用 Android 系统 CLOCK_TICK 效果,无需额外振动权限,并跟随用户的系统触觉设置。

误触控制

  • 只有按下和抬起落在同一个可点击控件且未超过系统滑动阈值时才会触发反馈。
  • 排除多指手势、文本输入、拖动条和网页内容,保持滚动、编辑与预览操作安静。
基准版本

2.7.25-WHRCT22

更新应用内升级系统,改由官方站点提供版本信息和受控 APK 下载,并在安装前完成文件大小与 SHA-256 完整性校验。

  • 更新检测现在读取官方站点 /api/product,并使用 Android versionCode 整数判断新旧版本。
  • 发现新版本后自动申请一次性安全下载链接,将 APK 保存到应用专属目录并显示实时进度。
  • APK 下载完成后会校验服务器公布的字节数和 SHA-256,只有完整性验证通过才会调起系统安装界面。
  • Android 8.0 及以上设备会在下载前检查安装未知应用权限,失败时显示具体原因。
  • 网站后台 Product 新增可编辑的 versionCode 字段,版本名称可自由设置,不再依赖字符串排序。

更新检测

  • 移除对旧 Azure DevOps lastest_version.txt 和 update_url.txt 的运行时依赖。
  • 通过 /api/product 获取 version、versionCode、文件名、真实字节数和 SHA-256,并仅比较 versionCode。

安全下载

  • 通过 /api/downloads/request 获取与当前设备绑定的一次性链接,并保持一致的 User-Agent 完成下载和 receipt 确认。
  • 下载到应用专属 Download 目录,实时显示进度并覆盖同名旧安装包。
  • 文件大小或 SHA-256 不匹配时立即删除临时文件并停止安装。

安装与后台

  • Android 8.0 及以上在下载前引导授权安装未知应用,校验通过后使用 FileProvider 调起系统安装器。
  • Product API、管理后台表单和管理 API 文档新增 versionCode;旧 WHRCT22 数据可按版本名称临时推导。
基准版本

2.7.24-WHRCT22

修复纯静态网页生成 App 后必须携带 PHP 或 Nginx 才能打开、切换显示语言后 Debug 启动组件失效,以及 Nginx PID 竞态导致项目初始化超时的问题。

  • 纯静态 App 现在通过内置 HTTPS 虚拟站点加载打包资源,无需携带或启动 PHP、Nginx。
  • 保留子目录首页的相对路径,并正确支持 JavaScript 模块、JSON、WebAssembly、SVG 等常见静态资源。
  • Debug 版本固定使用稳定的 BootActivity 启动入口,切换简体中文、英文或西班牙语后仍可正常调试。
  • Nginx PID 文件改为单次读取和安全校验,避免瞬时空内容触发 NumberFormatException。
  • Nginx 守护线程遇到空白、损坏或暂时不可读的 PID 时会继续重试,不再导致环境就绪回调丢失和项目初始化超时。

静态 App

  • 将无服务器环境的静态 App 从 file:// 加载切换为应用内 HTTPS 虚拟站点,不再依赖 PHP 或 Nginx。
  • 修复首页位于子目录时相对资源路径丢失的问题,并补充常见 Web 资源的正确 MIME 类型。
  • 限制静态资源访问范围并为缺失或非法路径返回明确状态。

调试启动

  • Debug 构建只使用真实且稳定的 BootActivity 作为 Launcher。
  • 应用启动时清理旧 Debug 版本遗留的语言启动别名状态,避免 Android Studio 继续启动已禁用的 LauncherDefaultActivity。

Nginx

  • 消除 Nginx 守护线程重复读取 PID 文件的竞态,PID 只读取一次并通过安全整数解析。
  • 无效 PID 保持在服务重试流程中,避免守护线程崩溃后项目初始化一直等待。
基准版本

2.7.22-WHRCT22

修复在项目根目录或异常目录路径下按返回键时,文件浏览器将空的父目录传入导航逻辑并导致应用崩溃的问题。

  • 修复在项目根目录或异常目录路径下按返回键时,文件浏览器将空的父目录传入导航逻辑并导致应用崩溃的问题。
  • 文件浏览器的工具栏返回、上级目录条目和系统返回键现在统一校验项目根目录边界,避免导航到项目目录之外。

修复

  • 修复在项目根目录或异常目录路径下按返回键时,文件浏览器将空的父目录传入导航逻辑并导致应用崩溃的问题。
  • 文件浏览器的工具栏返回、上级目录条目和系统返回键现在统一校验项目根目录边界,避免导航到项目目录之外。
基准版本

2.7.21-WHRCT22

修复项目环境初始化、主题切换和内置预览问题

  • 项目打开时显示环境初始化状态,服务全部就绪后才允许进入站点
  • 修复切换深浅主题时旧环境进程影响新项目环境的问题
  • 修复内置 WebView 切换项目后仍显示旧项目内容的问题

修复

  • 环境初始化期间按钮保持禁用,并同步显示服务启动失败状态
  • 主题切换时复用健康的 Nginx 环境,避免旧进程占用端口或让状态卡在初始化
  • 预览加载和刷新时清理旧 Service Worker 与 Cache Storage,并销毁离开的 WebView 实例
基准版本

2.7.17-WHRCT22

Android Studio 构建兼容性修复

  • 消除 Android Studio 打开项目时的 SDK XML 版本兼容警告
  • 修复 zipalign 原生模块缺少 CMake project() 声明的警告
  • 升级到 Android Gradle Plugin 9.0.1 与 Gradle 9.3.0,并迁移到 AGP 9 内置 Kotlin
  • 适配 AGP 9 非固定资源 ID,并通过完整 ARM64 Debug APK 构建验证

构建

  • Android Gradle Plugin 升级至 9.0.1
  • Gradle Wrapper 升级至 9.3.0
  • 各 Android 模块迁移到 AGP 9 内置 Kotlin
  • 项目 Gradle JDK 固定使用 Android Studio JetBrains Runtime 21.0.10

修复

  • 构建工具链现在可以正确识别当前 Android SDK 元数据,不再显示 SDK XML v4 兼容警告
  • 为 zipalign 原生模块添加标准 CMake project() 声明
  • 将资源 ID 的 switch 判断改为兼容非固定资源 ID 的判断逻辑
基准版本

2.7.16-WHRCT22

运行栈与应用生成能力升级

  • 新增 Nginx 1.31.3 站点管理与反向代理配置
  • 升级 PHP 8.5.1 与 MariaDB 12.3.2
  • 加入 aria2 1.37.0 RPC 下载管理
  • 应用生成支持 Nginx、PHP、MariaDB 环境组合
  • 进入应用时更新“管理所有文件”权限的 API 调用方式
  • 修复 HopWeb 原有音量上下键在应用内无法正常使用的问题
  • Android 应用打包新增更多配置选项
  • 支持将数据库与反向代理服务器一并打包
  • 修复部分窄屏、低高度设备上的 UI 布局问题

新增

  • 独立 Nginx 管理入口与站点模式配置
  • aria2 RPC 下载任务管理
  • 应用生成的服务环境选项
  • Android 应用打包提供更多配置选项
  • 数据库与反向代理服务器可随应用一并打包

优化

  • 前台服务与常驻通知状态
  • WakeLock 与 Wi-Fi Lock 配套能力
  • ARM64 运行环境体积与兼容性
  • 进入应用后“管理所有文件”权限采用新的 API 调用方式

修复

  • HopWeb 原有音量上下键在应用内无法正常使用的问题
  • 部分窄屏、低高度设备上的 UI 布局问题
基准版本

2.7.4.1

当前对比基线版本

  • 内置 Web、PHP 与 MariaDB 项目运行能力
  • 支持项目编辑、预览与 Android 应用生成