Skip to content

v7.0.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 23:29
· 3 commits to main since this release

OhGithubLost v7.0.0

新增 Web 版(浏览器),并把它作为正式平台之一。
Adds a Web build and treats it as one of the supported platforms.

新增 / Added

  • Web 版(PWA):可在浏览器中使用,并可「添加到桌面 / 主屏幕」作为独立窗口打开。
    • 入口 app/index.html 用 iframe 包裹当前版本,地址长期不变;各版本产物在
      app/v<版本号去点>/(本版为 v700),app/versions.json 为清单。
    • 图标与三端同源(assets/icon/ogl_icon.svg 光栅化)。
  • 「添加到桌面」提示:Chromium(含 macOS)走标准流程,每次打开提示一次;
    iOS Safari 不支持 beforeinstallprompt(平台限制),iOS 上给出
    「共享 → 添加到主屏幕」的引导。已安装后不再提示;可在 设置 → Web 版 关闭。
  • Web 首次打开对话框:提示可配置加速服务,并写明不配置也能正常使用(下载走直连)。
  • tool/web_publish.py:按版本发布到 app/ 并重写入口页与清单。

变更 / Changed

  • 平台差异改用条件导入:此前 18 个文件直接 import 'dart:io'(浏览器无该库),
    现改为 import 'x_io.dart' if (dart.library.js_interop) 'x_web.dart';。
  • 新增依赖 http: ^1.2.2(自带浏览器实现)。
  • web.yml 在 main 与 web 两条分支构建 Web;其成败不阻塞五平台发布。

Web 与桌面不同的部分(均在界面与日志中如实标注)

  • 磁盘:无文件系统。键值走 localStorage;文件类存储仅会话内有效;
    令牌保险库仅内存持有,刷新需重新登录(避免长期令牌明文留在 localStorage)。
  • 网络:传输层用 BrowserClient。自定义 DNS / DoH 不可用(浏览器不提供裸 socket)。
  • 网络自检:Web 上为有限自检,只测 HTTP 可达性。
  • 下载:background_downloader 无 Web 实现,下载交给浏览器。因此暂停、续传、
    多连接分片、进度、文件大小、保存路径、sha256 校验均不可用 —— 如实标注,不做假动作。
  • 带 Authorization 头的下载会明确失败(浏览器不允许页面设置跨域鉴权头)。
  • 预签名不可用:fetch 读不到跨域 302 的 Location;实现如实返回「解不出签名」,
    不会改成跟随重定向(那会绕过「令牌只用于第一跳」的设计)。
  • 日志不落盘:Web 上 OgLLogFile.isEnabled == false,保留控制台输出。

已知限制 / Known limitations

  • Web 不提供:自定义 DNS / DoH、多连接分片、后台下载与续传、下载进度与校验、
    导出到 SAF、TLS / DNS 级网络自检。
  • iOS 需按引导手动「添加到主屏幕」(Safari 不提供安装接口)。
  • docs/ARCHITECTURE.md 等 5 份被注释引用的文档仍不存在(已逐处标注「以源码为准」)。
  • Linux 裸放安装包 3 / 6:rpm(arm64)缺平台定义;AppImage 的 ARCH
    环境变量未被接受。三种包在 zip / 7z 里都齐全。
  • macOS / iOS 原生应用自 v5.6.0 起弃用(Web 版在 iOS 浏览器可用,但不是原生应用)。

产物 / Artifacts

Android arm64-v8a / armeabi-v7a / x86_64 / universal-APK / AAB、
Windows x64 / arm64、Linux x64 / arm64,每份均含 zip 与 7z;
Web 产物按版本发布在分支的 app/ 目录下。