Repository navigation
v7.0.0
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/ 目录下。